{"nbformat":4,"nbformat_minor":0,"metadata":{"colab":{"name":"9线性回归 .ipynb","version":"0.3.2","provenance":[],"collapsed_sections":[],"toc_visible":true},"kernelspec":{"display_name":"Python 3","language":"python","name":"python3"}},"cells":[{"metadata":{"id":"CBUiuLVJVfP1","colab_type":"text"},"cell_type":"markdown","source":["# 线性回归"]},{"metadata":{"id":"TkvUN8rMWeMo","colab_type":"text"},"cell_type":"markdown","source":["##  多元线性回归LinearRegression"]},{"metadata":{"id":"SwWpDRr1VWLW","colab_type":"code","colab":{}},"cell_type":"code","source":["from sklearn.linear_model import LinearRegression as LR\n","from sklearn.model_selection import train_test_split\n","from sklearn.model_selection import cross_val_score\n","from sklearn.datasets import fetch_california_housing as fch #加利福尼亚房屋价值数据集\n","import pandas as pd"],"execution_count":0,"outputs":[]},{"metadata":{"id":"B5bePRvVVWLb","colab_type":"code","outputId":"8a575b3a-3345-41c2-a621-133eb7e84e10","executionInfo":{"status":"ok","timestamp":1551596398908,"user_tz":-480,"elapsed":3200,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":54}},"cell_type":"code","source":["housevalue = fch() #会需要下载，大家可以提前运行试试看"],"execution_count":0,"outputs":[{"output_type":"stream","text":["Downloading Cal. housing from https://ndownloader.figshare.com/files/5976036 to /root/scikit_learn_data\n"],"name":"stderr"}]},{"metadata":{"id":"p3batqd2VWLd","colab_type":"code","outputId":"98365b58-aeb0-4983-f3e8-225d97cc9f5a","executionInfo":{"status":"ok","timestamp":1551596402045,"user_tz":-480,"elapsed":1686,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":238}},"cell_type":"code","source":["housevalue.data"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/plain":["array([[   8.3252    ,   41.        ,    6.98412698, ...,    2.55555556,\n","          37.88      , -122.23      ],\n","       [   8.3014    ,   21.        ,    6.23813708, ...,    2.10984183,\n","          37.86      , -122.22      ],\n","       [   7.2574    ,   52.        ,    8.28813559, ...,    2.80225989,\n","          37.85      , -122.24      ],\n","       ...,\n","       [   1.7       ,   17.        ,    5.20554273, ...,    2.3256351 ,\n","          39.43      , -121.22      ],\n","       [   1.8672    ,   18.        ,    5.32951289, ...,    2.12320917,\n","          39.43      , -121.32      ],\n","       [   2.3886    ,   16.        ,    5.25471698, ...,    2.61698113,\n","          39.37      , -121.24      ]])"]},"metadata":{"tags":[]},"execution_count":3}]},{"metadata":{"id":"90TEvO4_VWLi","colab_type":"code","colab":{}},"cell_type":"code","source":["X = pd.DataFrame(housevalue.data) #放入DataFrame中便于查看"],"execution_count":0,"outputs":[]},{"metadata":{"id":"I8VIFeBlVWLk","colab_type":"code","outputId":"3a972a22-b00b-40ab-f3a3-a121083c7f6f","executionInfo":{"status":"ok","timestamp":1551596409471,"user_tz":-480,"elapsed":1341,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":34}},"cell_type":"code","source":["X.shape"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/plain":["(20640, 8)"]},"metadata":{"tags":[]},"execution_count":5}]},{"metadata":{"id":"v9w1s2wCVWLo","colab_type":"code","colab":{}},"cell_type":"code","source":["y = housevalue.target"],"execution_count":0,"outputs":[]},{"metadata":{"id":"HhDscTJ3VWLq","colab_type":"code","outputId":"09b9ba1b-758b-4f91-a257-f79ea59295d2","executionInfo":{"status":"ok","timestamp":1551596414674,"user_tz":-480,"elapsed":526,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":34}},"cell_type":"code","source":["y.min()"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/plain":["0.14999"]},"metadata":{"tags":[]},"execution_count":7}]},{"metadata":{"id":"d7czpOIRVWLt","colab_type":"code","outputId":"6c89d326-ca89-47af-ceb9-ac9de99644d9","executionInfo":{"status":"ok","timestamp":1551596416765,"user_tz":-480,"elapsed":835,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":34}},"cell_type":"code","source":["y.max()"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/plain":["5.00001"]},"metadata":{"tags":[]},"execution_count":8}]},{"metadata":{"id":"tc7qvGqwVWLv","colab_type":"code","outputId":"fdeb98a3-5fce-4ce3-ffe0-8ae9a4610439","executionInfo":{"status":"ok","timestamp":1551596418420,"user_tz":-480,"elapsed":705,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":34}},"cell_type":"code","source":["y.shape"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/plain":["(20640,)"]},"metadata":{"tags":[]},"execution_count":9}]},{"metadata":{"id":"r4bYHv4EVWLy","colab_type":"code","outputId":"8daa7a2c-822b-4f0a-a261-4ead6448957a","executionInfo":{"status":"ok","timestamp":1551596421193,"user_tz":-480,"elapsed":931,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":204}},"cell_type":"code","source":["X.head()"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/html":["<div>\n","<style scoped>\n","    .dataframe tbody tr th:only-of-type {\n","        vertical-align: middle;\n","    }\n","\n","    .dataframe tbody tr th {\n","        vertical-align: top;\n","    }\n","\n","    .dataframe thead th {\n","        text-align: right;\n","    }\n","</style>\n","<table border=\"1\" class=\"dataframe\">\n","  <thead>\n","    <tr style=\"text-align: right;\">\n","      <th></th>\n","      <th>0</th>\n","      <th>1</th>\n","      <th>2</th>\n","      <th>3</th>\n","      <th>4</th>\n","      <th>5</th>\n","      <th>6</th>\n","      <th>7</th>\n","    </tr>\n","  </thead>\n","  <tbody>\n","    <tr>\n","      <th>0</th>\n","      <td>8.3252</td>\n","      <td>41.0</td>\n","      <td>6.984127</td>\n","      <td>1.023810</td>\n","      <td>322.0</td>\n","      <td>2.555556</td>\n","      <td>37.88</td>\n","      <td>-122.23</td>\n","    </tr>\n","    <tr>\n","      <th>1</th>\n","      <td>8.3014</td>\n","      <td>21.0</td>\n","      <td>6.238137</td>\n","      <td>0.971880</td>\n","      <td>2401.0</td>\n","      <td>2.109842</td>\n","      <td>37.86</td>\n","      <td>-122.22</td>\n","    </tr>\n","    <tr>\n","      <th>2</th>\n","      <td>7.2574</td>\n","      <td>52.0</td>\n","      <td>8.288136</td>\n","      <td>1.073446</td>\n","      <td>496.0</td>\n","      <td>2.802260</td>\n","      <td>37.85</td>\n","      <td>-122.24</td>\n","    </tr>\n","    <tr>\n","      <th>3</th>\n","      <td>5.6431</td>\n","      <td>52.0</td>\n","      <td>5.817352</td>\n","      <td>1.073059</td>\n","      <td>558.0</td>\n","      <td>2.547945</td>\n","      <td>37.85</td>\n","      <td>-122.25</td>\n","    </tr>\n","    <tr>\n","      <th>4</th>\n","      <td>3.8462</td>\n","      <td>52.0</td>\n","      <td>6.281853</td>\n","      <td>1.081081</td>\n","      <td>565.0</td>\n","      <td>2.181467</td>\n","      <td>37.85</td>\n","      <td>-122.25</td>\n","    </tr>\n","  </tbody>\n","</table>\n","</div>"],"text/plain":["        0     1         2         3       4         5      6       7\n","0  8.3252  41.0  6.984127  1.023810   322.0  2.555556  37.88 -122.23\n","1  8.3014  21.0  6.238137  0.971880  2401.0  2.109842  37.86 -122.22\n","2  7.2574  52.0  8.288136  1.073446   496.0  2.802260  37.85 -122.24\n","3  5.6431  52.0  5.817352  1.073059   558.0  2.547945  37.85 -122.25\n","4  3.8462  52.0  6.281853  1.081081   565.0  2.181467  37.85 -122.25"]},"metadata":{"tags":[]},"execution_count":10}]},{"metadata":{"id":"ZS_sYuqHVWL0","colab_type":"code","outputId":"a8940f22-4df8-4c09-c039-c010d6c85b64","executionInfo":{"status":"ok","timestamp":1551596423590,"user_tz":-480,"elapsed":1215,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":153}},"cell_type":"code","source":["housevalue.feature_names #特征名字"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/plain":["['MedInc',\n"," 'HouseAge',\n"," 'AveRooms',\n"," 'AveBedrms',\n"," 'Population',\n"," 'AveOccup',\n"," 'Latitude',\n"," 'Longitude']"]},"metadata":{"tags":[]},"execution_count":11}]},{"metadata":{"id":"RPsOmvq1VWL3","colab_type":"code","colab":{}},"cell_type":"code","source":["X.columns = housevalue.feature_names"],"execution_count":0,"outputs":[]},{"metadata":{"id":"X5ZqrdKwVWL6","colab_type":"code","colab":{}},"cell_type":"code","source":["\"\"\"\n","MedInc：该街区住户的收入中位数\n","HouseAge：该街区房屋使用年代的中位数\n","AveRooms：该街区平均的房间数目\n","AveBedrms：该街区平均的卧室数目\n","Population：街区人口\n","AveOccup：平均入住率\n","Latitude：街区的纬度\n","Longitude：街区的经度\n","\"\"\""],"execution_count":0,"outputs":[]},{"metadata":{"id":"Vxi63CncVWL8","colab_type":"code","colab":{}},"cell_type":"code","source":["Xtrain, Xtest, Ytrain, Ytest = train_test_split(X,y,test_size=0.3,random_state=420)"],"execution_count":0,"outputs":[]},{"metadata":{"id":"nUMm3XPLVWL-","colab_type":"code","outputId":"288908a3-d9f9-447d-ebcb-1cd1b719f1f4","executionInfo":{"status":"ok","timestamp":1551596448220,"user_tz":-480,"elapsed":1306,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":204}},"cell_type":"code","source":["Xtest.head()"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/html":["<div>\n","<style scoped>\n","    .dataframe tbody tr th:only-of-type {\n","        vertical-align: middle;\n","    }\n","\n","    .dataframe tbody tr th {\n","        vertical-align: top;\n","    }\n","\n","    .dataframe thead th {\n","        text-align: right;\n","    }\n","</style>\n","<table border=\"1\" class=\"dataframe\">\n","  <thead>\n","    <tr style=\"text-align: right;\">\n","      <th></th>\n","      <th>MedInc</th>\n","      <th>HouseAge</th>\n","      <th>AveRooms</th>\n","      <th>AveBedrms</th>\n","      <th>Population</th>\n","      <th>AveOccup</th>\n","      <th>Latitude</th>\n","      <th>Longitude</th>\n","    </tr>\n","  </thead>\n","  <tbody>\n","    <tr>\n","      <th>5156</th>\n","      <td>1.7656</td>\n","      <td>42.0</td>\n","      <td>4.144703</td>\n","      <td>1.031008</td>\n","      <td>1581.0</td>\n","      <td>4.085271</td>\n","      <td>33.96</td>\n","      <td>-118.28</td>\n","    </tr>\n","    <tr>\n","      <th>19714</th>\n","      <td>1.5281</td>\n","      <td>29.0</td>\n","      <td>5.095890</td>\n","      <td>1.095890</td>\n","      <td>1137.0</td>\n","      <td>3.115068</td>\n","      <td>39.29</td>\n","      <td>-121.68</td>\n","    </tr>\n","    <tr>\n","      <th>18471</th>\n","      <td>4.1750</td>\n","      <td>14.0</td>\n","      <td>5.604699</td>\n","      <td>1.045965</td>\n","      <td>2823.0</td>\n","      <td>2.883555</td>\n","      <td>37.14</td>\n","      <td>-121.64</td>\n","    </tr>\n","    <tr>\n","      <th>16156</th>\n","      <td>3.0278</td>\n","      <td>52.0</td>\n","      <td>5.172932</td>\n","      <td>1.085714</td>\n","      <td>1663.0</td>\n","      <td>2.500752</td>\n","      <td>37.78</td>\n","      <td>-122.49</td>\n","    </tr>\n","    <tr>\n","      <th>7028</th>\n","      <td>4.5000</td>\n","      <td>36.0</td>\n","      <td>4.940447</td>\n","      <td>0.982630</td>\n","      <td>1306.0</td>\n","      <td>3.240695</td>\n","      <td>33.95</td>\n","      <td>-118.09</td>\n","    </tr>\n","  </tbody>\n","</table>\n","</div>"],"text/plain":["       MedInc  HouseAge  AveRooms  AveBedrms  Population  AveOccup  Latitude  \\\n","5156   1.7656      42.0  4.144703   1.031008      1581.0  4.085271     33.96   \n","19714  1.5281      29.0  5.095890   1.095890      1137.0  3.115068     39.29   \n","18471  4.1750      14.0  5.604699   1.045965      2823.0  2.883555     37.14   \n","16156  3.0278      52.0  5.172932   1.085714      1663.0  2.500752     37.78   \n","7028   4.5000      36.0  4.940447   0.982630      1306.0  3.240695     33.95   \n","\n","       Longitude  \n","5156     -118.28  \n","19714    -121.68  \n","18471    -121.64  \n","16156    -122.49  \n","7028     -118.09  "]},"metadata":{"tags":[]},"execution_count":14}]},{"metadata":{"id":"GmPoPTlJVWMC","colab_type":"code","outputId":"8cd10ca4-38a4-4377-909c-c6d23e2204a6","executionInfo":{"status":"ok","timestamp":1551596450820,"user_tz":-480,"elapsed":1161,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":224}},"cell_type":"code","source":["Xtrain.head()"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/html":["<div>\n","<style scoped>\n","    .dataframe tbody tr th:only-of-type {\n","        vertical-align: middle;\n","    }\n","\n","    .dataframe tbody tr th {\n","        vertical-align: top;\n","    }\n","\n","    .dataframe thead th {\n","        text-align: right;\n","    }\n","</style>\n","<table border=\"1\" class=\"dataframe\">\n","  <thead>\n","    <tr style=\"text-align: right;\">\n","      <th></th>\n","      <th>MedInc</th>\n","      <th>HouseAge</th>\n","      <th>AveRooms</th>\n","      <th>AveBedrms</th>\n","      <th>Population</th>\n","      <th>AveOccup</th>\n","      <th>Latitude</th>\n","      <th>Longitude</th>\n","    </tr>\n","  </thead>\n","  <tbody>\n","    <tr>\n","      <th>17073</th>\n","      <td>4.1776</td>\n","      <td>35.0</td>\n","      <td>4.425172</td>\n","      <td>1.030683</td>\n","      <td>5380.0</td>\n","      <td>3.368817</td>\n","      <td>37.48</td>\n","      <td>-122.19</td>\n","    </tr>\n","    <tr>\n","      <th>16956</th>\n","      <td>5.3261</td>\n","      <td>38.0</td>\n","      <td>6.267516</td>\n","      <td>1.089172</td>\n","      <td>429.0</td>\n","      <td>2.732484</td>\n","      <td>37.53</td>\n","      <td>-122.30</td>\n","    </tr>\n","    <tr>\n","      <th>20012</th>\n","      <td>1.9439</td>\n","      <td>26.0</td>\n","      <td>5.768977</td>\n","      <td>1.141914</td>\n","      <td>891.0</td>\n","      <td>2.940594</td>\n","      <td>36.02</td>\n","      <td>-119.08</td>\n","    </tr>\n","    <tr>\n","      <th>13072</th>\n","      <td>2.5000</td>\n","      <td>22.0</td>\n","      <td>4.916000</td>\n","      <td>1.012000</td>\n","      <td>733.0</td>\n","      <td>2.932000</td>\n","      <td>38.57</td>\n","      <td>-121.31</td>\n","    </tr>\n","    <tr>\n","      <th>8457</th>\n","      <td>3.8250</td>\n","      <td>34.0</td>\n","      <td>5.036765</td>\n","      <td>1.098039</td>\n","      <td>1134.0</td>\n","      <td>2.779412</td>\n","      <td>33.91</td>\n","      <td>-118.35</td>\n","    </tr>\n","  </tbody>\n","</table>\n","</div>"],"text/plain":["       MedInc  HouseAge  AveRooms  AveBedrms  Population  AveOccup  Latitude  \\\n","17073  4.1776      35.0  4.425172   1.030683      5380.0  3.368817     37.48   \n","16956  5.3261      38.0  6.267516   1.089172       429.0  2.732484     37.53   \n","20012  1.9439      26.0  5.768977   1.141914       891.0  2.940594     36.02   \n","13072  2.5000      22.0  4.916000   1.012000       733.0  2.932000     38.57   \n","8457   3.8250      34.0  5.036765   1.098039      1134.0  2.779412     33.91   \n","\n","       Longitude  \n","17073    -122.19  \n","16956    -122.30  \n","20012    -119.08  \n","13072    -121.31  \n","8457     -118.35  "]},"metadata":{"tags":[]},"execution_count":15}]},{"metadata":{"id":"ueGSlC6aVWMP","colab_type":"code","colab":{}},"cell_type":"code","source":["#恢复索引\n","for i in [Xtrain, Xtest]:\n","    i.index = range(i.shape[0])"],"execution_count":0,"outputs":[]},{"metadata":{"id":"E3zddL00VWMY","colab_type":"code","outputId":"728d7ba1-0ecb-40cb-86c8-3e9e72e7cd54","executionInfo":{"status":"ok","timestamp":1551596465276,"user_tz":-480,"elapsed":828,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":34}},"cell_type":"code","source":["Xtrain.shape"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/plain":["(14448, 8)"]},"metadata":{"tags":[]},"execution_count":17}]},{"metadata":{"id":"AkyUK5GeVWMc","colab_type":"code","colab":{}},"cell_type":"code","source":["#如果希望进行数据标准化，还记得应该怎么做吗？\n","#先用训练集训练(fit)标准化的类，然后用训练好的类分别转化(transform)训练集和测试集"],"execution_count":0,"outputs":[]},{"metadata":{"id":"BlhajfWMVWMf","colab_type":"code","colab":{}},"cell_type":"code","source":["reg = LR().fit(Xtrain, Ytrain)"],"execution_count":0,"outputs":[]},{"metadata":{"id":"xe66N6nkVWMg","colab_type":"code","colab":{}},"cell_type":"code","source":["yhat = reg.predict(Xtest) #预测我们的yhat"],"execution_count":0,"outputs":[]},{"metadata":{"id":"4UYXVHwwVWMi","colab_type":"code","outputId":"497ce5a4-0462-47b1-b720-c5d0a9102527","executionInfo":{"status":"ok","timestamp":1551597275532,"user_tz":-480,"elapsed":601,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":34}},"cell_type":"code","source":["yhat.min()"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/plain":["-0.6528439725035966"]},"metadata":{"tags":[]},"execution_count":20}]},{"metadata":{"id":"J18fcd6IVWMo","colab_type":"code","outputId":"ff04eb22-9f68-4e91-ddd3-1874e691a7d4","executionInfo":{"status":"ok","timestamp":1551597277539,"user_tz":-480,"elapsed":910,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":34}},"cell_type":"code","source":["yhat.max()"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/plain":["7.146198214270861"]},"metadata":{"tags":[]},"execution_count":21}]},{"metadata":{"id":"oY2x_WkqVWMr","colab_type":"code","outputId":"00e70887-0697-4655-f9d7-c4f095f9ff91","executionInfo":{"status":"ok","timestamp":1551597280461,"user_tz":-480,"elapsed":1474,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":51}},"cell_type":"code","source":["reg.coef_ #w,系数向量"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/plain":["array([ 4.37358931e-01,  1.02112683e-02, -1.07807216e-01,  6.26433828e-01,\n","        5.21612535e-07, -3.34850965e-03, -4.13095938e-01, -4.26210954e-01])"]},"metadata":{"tags":[]},"execution_count":22}]},{"metadata":{"id":"bqBHVIYRVWMu","colab_type":"code","outputId":"d6fb0746-fad6-4636-8220-0ba3b047cd07","executionInfo":{"status":"ok","timestamp":1551597283083,"user_tz":-480,"elapsed":1306,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":68}},"cell_type":"code","source":["Xtrain.columns"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/plain":["Index(['MedInc', 'HouseAge', 'AveRooms', 'AveBedrms', 'Population', 'AveOccup',\n","       'Latitude', 'Longitude'],\n","      dtype='object')"]},"metadata":{"tags":[]},"execution_count":23}]},{"metadata":{"id":"SfuEWgIuVWMw","colab_type":"code","outputId":"98c2f85b-4d15-44f4-c78a-0a5eb3475deb","executionInfo":{"status":"ok","timestamp":1551597285181,"user_tz":-480,"elapsed":1008,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":153}},"cell_type":"code","source":["[*zip(Xtrain.columns,reg.coef_)]"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/plain":["[('MedInc', 0.43735893059684033),\n"," ('HouseAge', 0.010211268294493994),\n"," ('AveRooms', -0.10780721617317697),\n"," ('AveBedrms', 0.6264338275363783),\n"," ('Population', 5.216125353261353e-07),\n"," ('AveOccup', -0.003348509646333585),\n"," ('Latitude', -0.41309593789477195),\n"," ('Longitude', -0.42621095362084704)]"]},"metadata":{"tags":[]},"execution_count":24}]},{"metadata":{"id":"WdATH79VVWMz","colab_type":"code","outputId":"cfb0bf9d-ae5f-4591-e060-48f1ca5629d4","colab":{}},"cell_type":"code","source":["\"\"\"\n","MedInc：该街区住户的收入中位数\n","HouseAge：该街区房屋使用年代的中位数\n","AveRooms：该街区平均的房间数目\n","AveBedrms：该街区平均的卧室数目\n","Population：街区人口\n","AveOccup：平均入住率\n","Latitude：街区的纬度\n","Longitude：街区的经度\n","\"\"\""],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/plain":["'\\nMedInc：该街区住户的收入中位数\\nHouseAge：该街区房屋使用年代的中位数\\nAveRooms：该街区平均的房间数目\\nAveBedrms：该街区平均的卧室数目\\nPopulation：街区人口\\nAveOccup：平均入住率\\nLatitude：街区的纬度\\nLongitude：街区的经度\\n'"]},"metadata":{"tags":[]},"execution_count":56}]},{"metadata":{"id":"kI37Y8lQVWM1","colab_type":"code","outputId":"725ed5bb-87b7-407b-ef12-2fa92b5ec0d8","executionInfo":{"status":"ok","timestamp":1551597290787,"user_tz":-480,"elapsed":1318,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":34}},"cell_type":"code","source":["reg.intercept_"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/plain":["-36.256893229203875"]},"metadata":{"tags":[]},"execution_count":25}]},{"metadata":{"id":"ZFJ4m0XeaF-U","colab_type":"text"},"cell_type":"markdown","source":["### 加上标准化"]},{"metadata":{"id":"56kj9vMxaLZL","colab_type":"code","colab":{}},"cell_type":"code","source":["reg2 = LR(normalize=True).fit(Xtrain, Ytrain)"],"execution_count":0,"outputs":[]},{"metadata":{"id":"FG3JM65eaLkc","colab_type":"code","colab":{}},"cell_type":"code","source":["yhat2 = reg2.predict(Xtest)"],"execution_count":0,"outputs":[]},{"metadata":{"id":"HvoH0yR_aL0Y","colab_type":"code","outputId":"da33a74b-033a-4da7-b377-226bc4f079cf","executionInfo":{"status":"ok","timestamp":1551597412269,"user_tz":-480,"elapsed":1256,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":51}},"cell_type":"code","source":["reg2.coef_"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/plain":["array([ 4.37358931e-01,  1.02112683e-02, -1.07807216e-01,  6.26433828e-01,\n","        5.21612535e-07, -3.34850965e-03, -4.13095938e-01, -4.26210954e-01])"]},"metadata":{"tags":[]},"execution_count":28}]},{"metadata":{"id":"M3RPMBoQaLvP","colab_type":"code","outputId":"fa852a8b-19a1-47b5-d1e3-d0183aa4fadb","executionInfo":{"status":"ok","timestamp":1551597426181,"user_tz":-480,"elapsed":1165,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":34}},"cell_type":"code","source":["yhat2.max()"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/plain":["7.146198214270875"]},"metadata":{"tags":[]},"execution_count":29}]},{"metadata":{"id":"JaENJMreaeWY","colab_type":"text"},"cell_type":"markdown","source":["和不加标准化时一样"]},{"metadata":{"id":"O9Povl52Z9gk","colab_type":"text"},"cell_type":"markdown","source":["##  回归类的模型评估指标"]},{"metadata":{"id":"7oQVmFBOVWM3","colab_type":"code","outputId":"70e42017-ca77-4196-8510-35ff266193aa","executionInfo":{"status":"ok","timestamp":1551598269292,"user_tz":-480,"elapsed":1121,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":34}},"cell_type":"code","source":["from sklearn.metrics import mean_squared_error as MSE\n","MSE(yhat,Ytest)"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/plain":["0.5309012639324571"]},"metadata":{"tags":[]},"execution_count":30}]},{"metadata":{"id":"I00AgYT6dr46","colab_type":"code","outputId":"f1a8fe9a-b13a-4b0c-ce5e-9905bdf91445","executionInfo":{"status":"ok","timestamp":1551598280833,"user_tz":-480,"elapsed":634,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":34}},"cell_type":"code","source":["MSE(yhat2,Ytest)"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/plain":["0.5309012639324571"]},"metadata":{"tags":[]},"execution_count":31}]},{"metadata":{"id":"SYoQ2aZoVWM5","colab_type":"code","outputId":"a3f8b504-28eb-41ca-9139-8b85ff9fe085","executionInfo":{"status":"ok","timestamp":1551598284509,"user_tz":-480,"elapsed":676,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":34}},"cell_type":"code","source":["Ytest.mean()"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/plain":["2.0819292877906976"]},"metadata":{"tags":[]},"execution_count":32}]},{"metadata":{"id":"6iMyB138VWM8","colab_type":"code","outputId":"99f178c6-761d-41b4-bde1-36c5908a62e7","executionInfo":{"status":"ok","timestamp":1551598287227,"user_tz":-480,"elapsed":620,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":34}},"cell_type":"code","source":["y.max()"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/plain":["5.00001"]},"metadata":{"tags":[]},"execution_count":33}]},{"metadata":{"id":"WNBHWCazVWM-","colab_type":"code","outputId":"923b5f1a-3dde-4909-ead8-a136a215c00e","executionInfo":{"status":"ok","timestamp":1551598290479,"user_tz":-480,"elapsed":635,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":34}},"cell_type":"code","source":["y.min()"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/plain":["0.14999"]},"metadata":{"tags":[]},"execution_count":34}]},{"metadata":{"id":"s3hTHfgKVWNA","colab_type":"code","outputId":"4b892e2a-cdfd-4407-e350-11446c560300","colab":{}},"cell_type":"code","source":["cross_val_score(reg,X,y,cv=10,scoring=\"mean_squared_error\")"],"execution_count":0,"outputs":[{"output_type":"error","ename":"ValueError","evalue":"'mean_squared_error' is not a valid scoring value. Use sorted(sklearn.metrics.SCORERS.keys()) to get valid options.","traceback":["\u001b[1;31m---------------------------------------------------------------------------\u001b[0m","\u001b[1;31mKeyError\u001b[0m                                  Traceback (most recent call last)","\u001b[1;32mC:\\Python\\lib\\site-packages\\sklearn\\metrics\\scorer.py\u001b[0m in \u001b[0;36mget_scorer\u001b[1;34m(scoring)\u001b[0m\n\u001b[0;32m    228\u001b[0m         \u001b[1;32mtry\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 229\u001b[1;33m             \u001b[0mscorer\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mSCORERS\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mscoring\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m    230\u001b[0m         \u001b[1;32mexcept\u001b[0m \u001b[0mKeyError\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n","\u001b[1;31mKeyError\u001b[0m: 'mean_squared_error'","\nDuring handling of the above exception, another exception occurred:\n","\u001b[1;31mValueError\u001b[0m                                Traceback (most recent call last)","\u001b[1;32m<ipython-input-64-b70293e87db8>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mcross_val_score\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mreg\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mX\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0my\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mcv\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m10\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mscoring\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m\"mean_squared_error\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m","\u001b[1;32mC:\\Python\\lib\\site-packages\\sklearn\\model_selection\\_validation.py\u001b[0m in \u001b[0;36mcross_val_score\u001b[1;34m(estimator, X, y, groups, scoring, cv, n_jobs, verbose, fit_params, pre_dispatch, error_score)\u001b[0m\n\u001b[0;32m    392\u001b[0m     \"\"\"\n\u001b[0;32m    393\u001b[0m     \u001b[1;31m# To ensure multimetric format is not supported\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 394\u001b[1;33m     \u001b[0mscorer\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mcheck_scoring\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mestimator\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mscoring\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mscoring\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m    395\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    396\u001b[0m     cv_results = cross_validate(estimator=estimator, X=X, y=y, groups=groups,\n","\u001b[1;32mC:\\Python\\lib\\site-packages\\sklearn\\metrics\\scorer.py\u001b[0m in \u001b[0;36mcheck_scoring\u001b[1;34m(estimator, scoring, allow_none)\u001b[0m\n\u001b[0;32m    271\u001b[0m                         \"'fit' method, %r was passed\" % estimator)\n\u001b[0;32m    272\u001b[0m     \u001b[1;32mif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mscoring\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0msix\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mstring_types\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 273\u001b[1;33m         \u001b[1;32mreturn\u001b[0m \u001b[0mget_scorer\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mscoring\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m    274\u001b[0m     \u001b[1;32melif\u001b[0m \u001b[0mcallable\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mscoring\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    275\u001b[0m         \u001b[1;31m# Heuristic to ensure user has not passed a metric\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n","\u001b[1;32mC:\\Python\\lib\\site-packages\\sklearn\\metrics\\scorer.py\u001b[0m in \u001b[0;36mget_scorer\u001b[1;34m(scoring)\u001b[0m\n\u001b[0;32m    231\u001b[0m             raise ValueError('%r is not a valid scoring value. '\n\u001b[0;32m    232\u001b[0m                              \u001b[1;34m'Use sorted(sklearn.metrics.SCORERS.keys()) '\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 233\u001b[1;33m                              'to get valid options.' % (scoring))\n\u001b[0m\u001b[0;32m    234\u001b[0m     \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    235\u001b[0m         \u001b[0mscorer\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mscoring\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n","\u001b[1;31mValueError\u001b[0m: 'mean_squared_error' is not a valid scoring value. Use sorted(sklearn.metrics.SCORERS.keys()) to get valid options."]}]},{"metadata":{"id":"y--0s0cNVWNC","colab_type":"code","outputId":"72353f16-145b-4c5f-803c-52feb765313c","executionInfo":{"status":"ok","timestamp":1551598297943,"user_tz":-480,"elapsed":965,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":612}},"cell_type":"code","source":["#为什么报错了？来试试看！\n","import sklearn\n","sorted(sklearn.metrics.SCORERS.keys())"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/plain":["['accuracy',\n"," 'adjusted_mutual_info_score',\n"," 'adjusted_rand_score',\n"," 'average_precision',\n"," 'balanced_accuracy',\n"," 'brier_score_loss',\n"," 'completeness_score',\n"," 'explained_variance',\n"," 'f1',\n"," 'f1_macro',\n"," 'f1_micro',\n"," 'f1_samples',\n"," 'f1_weighted',\n"," 'fowlkes_mallows_score',\n"," 'homogeneity_score',\n"," 'mutual_info_score',\n"," 'neg_log_loss',\n"," 'neg_mean_absolute_error',\n"," 'neg_mean_squared_error',\n"," 'neg_mean_squared_log_error',\n"," 'neg_median_absolute_error',\n"," 'normalized_mutual_info_score',\n"," 'precision',\n"," 'precision_macro',\n"," 'precision_micro',\n"," 'precision_samples',\n"," 'precision_weighted',\n"," 'r2',\n"," 'recall',\n"," 'recall_macro',\n"," 'recall_micro',\n"," 'recall_samples',\n"," 'recall_weighted',\n"," 'roc_auc',\n"," 'v_measure_score']"]},"metadata":{"tags":[]},"execution_count":35}]},{"metadata":{"id":"xubM9CYnVWNG","colab_type":"code","outputId":"6d67a545-f07a-43ad-baa7-d77fe3bed9b9","executionInfo":{"status":"ok","timestamp":1551598452651,"user_tz":-480,"elapsed":680,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":34}},"cell_type":"code","source":["cross_val_score(reg,X,y,cv=10,scoring=\"neg_mean_squared_error\").mean()"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/plain":["-0.5509524296956597"]},"metadata":{"tags":[]},"execution_count":36}]},{"metadata":{"id":"rej8tmu4ea5I","colab_type":"code","outputId":"2f384078-94c3-4ebe-fa29-386300b9854e","executionInfo":{"status":"ok","timestamp":1551598480127,"user_tz":-480,"elapsed":647,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":34}},"cell_type":"code","source":["cross_val_score(reg2,X,y,cv=10,scoring=\"neg_mean_squared_error\").mean()"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/plain":["-0.5509524296956588"]},"metadata":{"tags":[]},"execution_count":37}]},{"metadata":{"id":"6GDW62sJVWNI","colab_type":"code","outputId":"cded442e-219d-4ca1-ffef-1d877740747a","executionInfo":{"status":"ok","timestamp":1551600889693,"user_tz":-480,"elapsed":630,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":34}},"cell_type":"code","source":["#调用R2\n","from sklearn.metrics import r2_score\n","r2_score(yhat,Ytest)"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/plain":["0.3380653761556006"]},"metadata":{"tags":[]},"execution_count":38}]},{"metadata":{"id":"N0U-OSIzVWNJ","colab_type":"code","outputId":"daa53f65-db45-4160-ce30-4a73e4695e63","executionInfo":{"status":"ok","timestamp":1551600891511,"user_tz":-480,"elapsed":643,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":34}},"cell_type":"code","source":["r2 = reg.score(Xtest,Ytest)\n","r2"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/plain":["0.6043668160178817"]},"metadata":{"tags":[]},"execution_count":39}]},{"metadata":{"id":"Qb_jP75FVWNN","colab_type":"code","outputId":"0b893b27-3652-4a54-ad31-d8d8f7980ca8","executionInfo":{"status":"ok","timestamp":1551600893674,"user_tz":-480,"elapsed":610,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":34}},"cell_type":"code","source":["r2_score(Ytest,yhat)"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/plain":["0.6043668160178817"]},"metadata":{"tags":[]},"execution_count":40}]},{"metadata":{"id":"feN-CmhMVWNQ","colab_type":"code","outputId":"5f2a4854-a072-4aec-b912-a1063eb21125","executionInfo":{"status":"ok","timestamp":1551600896600,"user_tz":-480,"elapsed":1405,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":34}},"cell_type":"code","source":["#或者你也可以指定参数，就不必在意顺序了\n","r2_score(y_true = Ytest,y_pred = yhat)"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/plain":["0.6043668160178817"]},"metadata":{"tags":[]},"execution_count":41}]},{"metadata":{"id":"nrhDa9UmVWNR","colab_type":"code","outputId":"3c695f4d-6323-46a4-aeac-3d84b006de37","executionInfo":{"status":"ok","timestamp":1551600898947,"user_tz":-480,"elapsed":624,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":34}},"cell_type":"code","source":["cross_val_score(reg,X,y,cv=10,scoring=\"r2\").mean()"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/plain":["0.5110068610524551"]},"metadata":{"tags":[]},"execution_count":42}]},{"metadata":{"id":"NGs6LWb9VWNV","colab_type":"code","outputId":"256b3d08-0429-4180-b030-7657a27399a7","executionInfo":{"status":"ok","timestamp":1551600900786,"user_tz":-480,"elapsed":671,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":17034}},"cell_type":"code","source":["import matplotlib.pyplot as plt\n","sorted(Ytest)"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/plain":["[0.14999,\n"," 0.14999,\n"," 0.225,\n"," 0.325,\n"," 0.35,\n"," 0.375,\n"," 0.388,\n"," 0.392,\n"," 0.394,\n"," 0.396,\n"," 0.4,\n"," 0.404,\n"," 0.409,\n"," 0.41,\n"," 0.43,\n"," 0.435,\n"," 0.437,\n"," 0.439,\n"," 0.44,\n"," 0.44,\n"," 0.444,\n"," 0.446,\n"," 0.45,\n"," 0.45,\n"," 0.45,\n"," 0.45,\n"," 0.455,\n"," 0.455,\n"," 0.455,\n"," 0.456,\n"," 0.462,\n"," 0.463,\n"," 0.471,\n"," 0.475,\n"," 0.478,\n"," 0.478,\n"," 0.481,\n"," 0.481,\n"," 0.483,\n"," 0.483,\n"," 0.485,\n"," 0.485,\n"," 0.488,\n"," 0.489,\n"," 0.49,\n"," 0.492,\n"," 0.494,\n"," 0.494,\n"," 0.494,\n"," 0.495,\n"," 0.496,\n"," 0.5,\n"," 0.5,\n"," 0.504,\n"," 0.505,\n"," 0.506,\n"," 0.506,\n"," 0.508,\n"," 0.508,\n"," 0.51,\n"," 0.516,\n"," 0.519,\n"," 0.52,\n"," 0.521,\n"," 0.523,\n"," 0.523,\n"," 0.525,\n"," 0.525,\n"," 0.525,\n"," 0.525,\n"," 0.525,\n"," 0.527,\n"," 0.527,\n"," 0.528,\n"," 0.529,\n"," 0.53,\n"," 0.531,\n"," 0.532,\n"," 0.534,\n"," 0.535,\n"," 0.535,\n"," 0.535,\n"," 0.538,\n"," 0.538,\n"," 0.539,\n"," 0.539,\n"," 0.539,\n"," 0.541,\n"," 0.541,\n"," 0.542,\n"," 0.542,\n"," 0.542,\n"," 0.543,\n"," 0.543,\n"," 0.544,\n"," 0.544,\n"," 0.546,\n"," 0.547,\n"," 0.55,\n"," 0.55,\n"," 0.55,\n"," 0.55,\n"," 0.55,\n"," 0.55,\n"," 0.55,\n"," 0.55,\n"," 0.551,\n"," 0.553,\n"," 0.553,\n"," 0.553,\n"," 0.554,\n"," 0.554,\n"," 0.554,\n"," 0.555,\n"," 0.556,\n"," 0.556,\n"," 0.557,\n"," 0.558,\n"," 0.558,\n"," 0.559,\n"," 0.559,\n"," 0.559,\n"," 0.559,\n"," 0.56,\n"," 0.56,\n"," 0.562,\n"," 0.566,\n"," 0.567,\n"," 0.567,\n"," 0.567,\n"," 0.567,\n"," 0.567,\n"," 0.568,\n"," 0.57,\n"," 0.571,\n"," 0.572,\n"," 0.574,\n"," 0.574,\n"," 0.575,\n"," 0.575,\n"," 0.575,\n"," 0.575,\n"," 0.576,\n"," 0.577,\n"," 0.577,\n"," 0.577,\n"," 0.578,\n"," 0.579,\n"," 0.579,\n"," 0.579,\n"," 0.58,\n"," 0.58,\n"," 0.58,\n"," 0.58,\n"," 0.58,\n"," 0.58,\n"," 0.581,\n"," 0.581,\n"," 0.581,\n"," 0.581,\n"," 0.582,\n"," 0.583,\n"," 0.583,\n"," 0.583,\n"," 0.583,\n"," 0.584,\n"," 0.586,\n"," 0.586,\n"," 0.587,\n"," 0.588,\n"," 0.588,\n"," 0.59,\n"," 0.59,\n"," 0.59,\n"," 0.59,\n"," 0.591,\n"," 0.591,\n"," 0.593,\n"," 0.593,\n"," 0.594,\n"," 0.594,\n"," 0.594,\n"," 0.594,\n"," 0.595,\n"," 0.596,\n"," 0.596,\n"," 0.597,\n"," 0.598,\n"," 0.598,\n"," 0.6,\n"," 0.6,\n"," 0.6,\n"," 0.602,\n"," 0.602,\n"," 0.603,\n"," 0.604,\n"," 0.604,\n"," 0.604,\n"," 0.605,\n"," 0.606,\n"," 0.606,\n"," 0.608,\n"," 0.608,\n"," 0.608,\n"," 0.609,\n"," 0.609,\n"," 0.611,\n"," 0.612,\n"," 0.612,\n"," 0.613,\n"," 0.613,\n"," 0.613,\n"," 0.614,\n"," 0.615,\n"," 0.616,\n"," 0.616,\n"," 0.616,\n"," 0.616,\n"," 0.618,\n"," 0.618,\n"," 0.618,\n"," 0.619,\n"," 0.619,\n"," 0.62,\n"," 0.62,\n"," 0.62,\n"," 0.62,\n"," 0.62,\n"," 0.62,\n"," 0.62,\n"," 0.62,\n"," 0.621,\n"," 0.621,\n"," 0.621,\n"," 0.622,\n"," 0.623,\n"," 0.625,\n"," 0.625,\n"," 0.625,\n"," 0.627,\n"," 0.627,\n"," 0.628,\n"," 0.628,\n"," 0.629,\n"," 0.63,\n"," 0.63,\n"," 0.63,\n"," 0.63,\n"," 0.631,\n"," 0.631,\n"," 0.632,\n"," 0.632,\n"," 0.633,\n"," 0.633,\n"," 0.633,\n"," 0.634,\n"," 0.634,\n"," 0.635,\n"," 0.635,\n"," 0.635,\n"," 0.635,\n"," 0.635,\n"," 0.637,\n"," 0.637,\n"," 0.637,\n"," 0.637,\n"," 0.638,\n"," 0.639,\n"," 0.643,\n"," 0.644,\n"," 0.644,\n"," 0.646,\n"," 0.646,\n"," 0.646,\n"," 0.646,\n"," 0.647,\n"," 0.647,\n"," 0.647,\n"," 0.648,\n"," 0.65,\n"," 0.65,\n"," 0.65,\n"," 0.652,\n"," 0.652,\n"," 0.654,\n"," 0.654,\n"," 0.654,\n"," 0.655,\n"," 0.656,\n"," 0.656,\n"," 0.656,\n"," 0.656,\n"," 0.657,\n"," 0.658,\n"," 0.658,\n"," 0.659,\n"," 0.659,\n"," 0.659,\n"," 0.659,\n"," 0.659,\n"," 0.66,\n"," 0.661,\n"," 0.661,\n"," 0.662,\n"," 0.662,\n"," 0.663,\n"," 0.664,\n"," 0.664,\n"," 0.664,\n"," 0.668,\n"," 0.669,\n"," 0.669,\n"," 0.67,\n"," 0.67,\n"," 0.67,\n"," 0.67,\n"," 0.67,\n"," 0.67,\n"," 0.672,\n"," 0.672,\n"," 0.672,\n"," 0.673,\n"," 0.673,\n"," 0.674,\n"," 0.675,\n"," 0.675,\n"," 0.675,\n"," 0.675,\n"," 0.675,\n"," 0.675,\n"," 0.675,\n"," 0.675,\n"," 0.675,\n"," 0.675,\n"," 0.675,\n"," 0.675,\n"," 0.675,\n"," 0.676,\n"," 0.676,\n"," 0.677,\n"," 0.678,\n"," 0.68,\n"," 0.68,\n"," 0.681,\n"," 0.682,\n"," 0.682,\n"," 0.682,\n"," 0.682,\n"," 0.683,\n"," 0.683,\n"," 0.683,\n"," 0.684,\n"," 0.684,\n"," 0.685,\n"," 0.685,\n"," 0.685,\n"," 0.685,\n"," 0.686,\n"," 0.686,\n"," 0.687,\n"," 0.688,\n"," 0.689,\n"," 0.689,\n"," 0.689,\n"," 0.69,\n"," 0.69,\n"," 0.691,\n"," 0.691,\n"," 0.692,\n"," 0.693,\n"," 0.694,\n"," 0.694,\n"," 0.694,\n"," 0.694,\n"," 0.694,\n"," 0.695,\n"," 0.695,\n"," 0.695,\n"," 0.696,\n"," 0.696,\n"," 0.697,\n"," 0.698,\n"," 0.699,\n"," 0.699,\n"," 0.7,\n"," 0.7,\n"," 0.7,\n"," 0.7,\n"," 0.7,\n"," 0.7,\n"," 0.701,\n"," 0.701,\n"," 0.701,\n"," 0.702,\n"," 0.702,\n"," 0.703,\n"," 0.704,\n"," 0.704,\n"," 0.705,\n"," 0.705,\n"," 0.706,\n"," 0.707,\n"," 0.707,\n"," 0.707,\n"," 0.708,\n"," 0.709,\n"," 0.71,\n"," 0.71,\n"," 0.71,\n"," 0.711,\n"," 0.712,\n"," 0.712,\n"," 0.713,\n"," 0.713,\n"," 0.713,\n"," 0.714,\n"," 0.715,\n"," 0.716,\n"," 0.718,\n"," 0.719,\n"," 0.72,\n"," 0.72,\n"," 0.72,\n"," 0.721,\n"," 0.722,\n"," 0.723,\n"," 0.723,\n"," 0.723,\n"," 0.723,\n"," 0.723,\n"," 0.725,\n"," 0.725,\n"," 0.727,\n"," 0.727,\n"," 0.728,\n"," 0.729,\n"," 0.729,\n"," 0.73,\n"," 0.73,\n"," 0.73,\n"," 0.73,\n"," 0.73,\n"," 0.731,\n"," 0.731,\n"," 0.731,\n"," 0.731,\n"," 0.732,\n"," 0.733,\n"," 0.733,\n"," 0.734,\n"," 0.735,\n"," 0.735,\n"," 0.737,\n"," 0.738,\n"," 0.738,\n"," 0.738,\n"," 0.74,\n"," 0.74,\n"," 0.74,\n"," 0.741,\n"," 0.741,\n"," 0.741,\n"," 0.743,\n"," 0.746,\n"," 0.746,\n"," 0.747,\n"," 0.748,\n"," 0.749,\n"," 0.75,\n"," 0.75,\n"," 0.75,\n"," 0.75,\n"," 0.75,\n"," 0.75,\n"," 0.75,\n"," 0.752,\n"," 0.752,\n"," 0.754,\n"," 0.756,\n"," 0.756,\n"," 0.757,\n"," 0.759,\n"," 0.759,\n"," 0.759,\n"," 0.76,\n"," 0.76,\n"," 0.761,\n"," 0.762,\n"," 0.762,\n"," 0.762,\n"," 0.762,\n"," 0.763,\n"," 0.764,\n"," 0.764,\n"," 0.765,\n"," 0.766,\n"," 0.768,\n"," 0.769,\n"," 0.77,\n"," 0.771,\n"," 0.771,\n"," 0.771,\n"," 0.772,\n"," 0.772,\n"," 0.773,\n"," 0.774,\n"," 0.774,\n"," 0.775,\n"," 0.777,\n"," 0.777,\n"," 0.779,\n"," 0.78,\n"," 0.78,\n"," 0.78,\n"," 0.781,\n"," 0.783,\n"," 0.783,\n"," 0.785,\n"," 0.786,\n"," 0.786,\n"," 0.786,\n"," 0.786,\n"," 0.788,\n"," 0.788,\n"," 0.788,\n"," 0.788,\n"," 0.788,\n"," 0.79,\n"," 0.79,\n"," 0.79,\n"," 0.792,\n"," 0.792,\n"," 0.792,\n"," 0.795,\n"," 0.795,\n"," 0.795,\n"," 0.797,\n"," 0.797,\n"," 0.798,\n"," 0.799,\n"," 0.8,\n"," 0.801,\n"," 0.802,\n"," 0.803,\n"," 0.804,\n"," 0.804,\n"," 0.804,\n"," 0.806,\n"," 0.806,\n"," 0.808,\n"," 0.808,\n"," 0.808,\n"," 0.809,\n"," 0.81,\n"," 0.81,\n"," 0.811,\n"," 0.813,\n"," 0.813,\n"," 0.813,\n"," 0.813,\n"," 0.813,\n"," 0.813,\n"," 0.813,\n"," 0.813,\n"," 0.813,\n"," 0.813,\n"," 0.813,\n"," 0.813,\n"," 0.813,\n"," 0.813,\n"," 0.814,\n"," 0.814,\n"," 0.816,\n"," 0.817,\n"," 0.817,\n"," 0.817,\n"," 0.821,\n"," 0.821,\n"," 0.821,\n"," 0.823,\n"," 0.823,\n"," 0.824,\n"," 0.825,\n"," 0.825,\n"," 0.825,\n"," 0.826,\n"," 0.827,\n"," 0.827,\n"," 0.828,\n"," 0.828,\n"," 0.828,\n"," 0.83,\n"," 0.83,\n"," 0.83,\n"," 0.831,\n"," 0.831,\n"," 0.831,\n"," 0.832,\n"," 0.832,\n"," 0.832,\n"," 0.833,\n"," 0.833,\n"," 0.834,\n"," 0.835,\n"," 0.835,\n"," 0.836,\n"," 0.836,\n"," 0.837,\n"," 0.838,\n"," 0.839,\n"," 0.839,\n"," 0.839,\n"," 0.839,\n"," 0.84,\n"," 0.841,\n"," 0.842,\n"," 0.842,\n"," 0.842,\n"," 0.843,\n"," 0.843,\n"," 0.844,\n"," 0.844,\n"," 0.844,\n"," 0.845,\n"," 0.845,\n"," 0.845,\n"," 0.845,\n"," 0.846,\n"," 0.846,\n"," 0.846,\n"," 0.846,\n"," 0.847,\n"," 0.847,\n"," 0.847,\n"," 0.847,\n"," 0.847,\n"," 0.847,\n"," 0.848,\n"," 0.849,\n"," 0.849,\n"," 0.85,\n"," 0.85,\n"," 0.85,\n"," 0.851,\n"," 0.851,\n"," 0.851,\n"," 0.851,\n"," 0.852,\n"," 0.853,\n"," 0.853,\n"," 0.854,\n"," 0.854,\n"," 0.854,\n"," 0.855,\n"," 0.855,\n"," 0.855,\n"," 0.855,\n"," 0.856,\n"," 0.857,\n"," 0.857,\n"," 0.857,\n"," 0.857,\n"," 0.857,\n"," 0.858,\n"," 0.859,\n"," 0.859,\n"," 0.859,\n"," 0.859,\n"," 0.859,\n"," 0.861,\n"," 0.862,\n"," 0.863,\n"," 0.863,\n"," 0.863,\n"," 0.864,\n"," 0.864,\n"," 0.864,\n"," 0.864,\n"," 0.865,\n"," 0.865,\n"," 0.865,\n"," 0.866,\n"," 0.867,\n"," 0.867,\n"," 0.868,\n"," 0.869,\n"," 0.869,\n"," 0.869,\n"," 0.869,\n"," 0.87,\n"," 0.87,\n"," 0.871,\n"," 0.871,\n"," 0.872,\n"," 0.872,\n"," 0.872,\n"," 0.873,\n"," 0.874,\n"," 0.875,\n"," 0.875,\n"," 0.875,\n"," 0.875,\n"," 0.875,\n"," 0.875,\n"," 0.875,\n"," 0.875,\n"," 0.875,\n"," 0.875,\n"," 0.875,\n"," 0.875,\n"," 0.875,\n"," 0.875,\n"," 0.875,\n"," 0.875,\n"," 0.875,\n"," 0.875,\n"," 0.875,\n"," 0.875,\n"," 0.875,\n"," 0.875,\n"," 0.875,\n"," 0.875,\n"," 0.876,\n"," 0.876,\n"," 0.877,\n"," 0.877,\n"," 0.878,\n"," 0.878,\n"," 0.878,\n"," 0.879,\n"," 0.879,\n"," 0.879,\n"," 0.88,\n"," 0.88,\n"," 0.881,\n"," 0.881,\n"," 0.882,\n"," 0.882,\n"," 0.882,\n"," 0.882,\n"," 0.883,\n"," 0.883,\n"," 0.883,\n"," 0.883,\n"," 0.883,\n"," 0.883,\n"," 0.884,\n"," 0.885,\n"," 0.885,\n"," 0.886,\n"," 0.887,\n"," 0.887,\n"," 0.887,\n"," 0.888,\n"," 0.888,\n"," 0.888,\n"," 0.889,\n"," 0.889,\n"," 0.889,\n"," 0.889,\n"," 0.889,\n"," 0.89,\n"," 0.891,\n"," 0.892,\n"," 0.892,\n"," 0.892,\n"," 0.893,\n"," 0.893,\n"," 0.894,\n"," 0.895,\n"," 0.896,\n"," 0.896,\n"," 0.897,\n"," 0.897,\n"," 0.898,\n"," 0.898,\n"," 0.899,\n"," 0.9,\n"," 0.9,\n"," 0.9,\n"," 0.901,\n"," 0.901,\n"," 0.901,\n"," 0.902,\n"," 0.903,\n"," 0.903,\n"," 0.904,\n"," 0.904,\n"," 0.904,\n"," 0.905,\n"," 0.905,\n"," 0.905,\n"," 0.905,\n"," 0.906,\n"," 0.906,\n"," 0.906,\n"," 0.906,\n"," 0.907,\n"," 0.907,\n"," 0.908,\n"," 0.911,\n"," 0.911,\n"," 0.912,\n"," 0.914,\n"," 0.915,\n"," 0.915,\n"," 0.916,\n"," 0.916,\n"," 0.917,\n"," 0.917,\n"," 0.917,\n"," 0.917,\n"," 0.918,\n"," 0.918,\n"," 0.918,\n"," 0.919,\n"," 0.919,\n"," 0.919,\n"," 0.92,\n"," 0.92,\n"," 0.922,\n"," 0.922,\n"," 0.922,\n"," 0.922,\n"," 0.922,\n"," 0.924,\n"," 0.925,\n"," 0.925,\n"," 0.925,\n"," 0.925,\n"," 0.926,\n"," 0.926,\n"," 0.926,\n"," 0.926,\n"," 0.926,\n"," 0.926,\n"," 0.926,\n"," 0.926,\n"," 0.926,\n"," 0.926,\n"," 0.927,\n"," 0.927,\n"," 0.927,\n"," 0.927,\n"," 0.928,\n"," 0.928,\n"," 0.928,\n"," 0.928,\n"," 0.928,\n"," 0.929,\n"," 0.93,\n"," 0.93,\n"," 0.931,\n"," 0.931,\n"," 0.931,\n"," 0.931,\n"," 0.931,\n"," 0.931,\n"," 0.932,\n"," 0.932,\n"," 0.932,\n"," 0.932,\n"," 0.933,\n"," 0.933,\n"," 0.933,\n"," 0.934,\n"," 0.934,\n"," 0.934,\n"," 0.934,\n"," 0.934,\n"," 0.935,\n"," 0.935,\n"," 0.935,\n"," 0.936,\n"," 0.936,\n"," 0.936,\n"," 0.936,\n"," 0.938,\n"," 0.938,\n"," 0.938,\n"," 0.938,\n"," 0.938,\n"," 0.938,\n"," 0.938,\n"," 0.938,\n"," 0.938,\n"," 0.938,\n"," 0.938,\n"," 0.939,\n"," 0.939,\n"," 0.94,\n"," 0.94,\n"," 0.942,\n"," 0.942,\n"," 0.943,\n"," 0.943,\n"," 0.944,\n"," 0.944,\n"," 0.944,\n"," 0.945,\n"," 0.945,\n"," 0.946,\n"," 0.946,\n"," 0.946,\n"," 0.946,\n"," 0.946,\n"," 0.946,\n"," 0.946,\n"," 0.947,\n"," 0.947,\n"," 0.948,\n"," 0.948,\n"," 0.948,\n"," 0.949,\n"," 0.949,\n"," 0.95,\n"," 0.95,\n"," 0.95,\n"," 0.95,\n"," 0.95,\n"," 0.951,\n"," 0.952,\n"," 0.952,\n"," 0.953,\n"," 0.953,\n"," 0.953,\n"," 0.953,\n"," 0.954,\n"," 0.955,\n"," 0.955,\n"," 0.955,\n"," 0.955,\n"," 0.955,\n"," 0.956,\n"," 0.957,\n"," 0.957,\n"," 0.957,\n"," 0.958,\n"," 0.958,\n"," 0.958,\n"," 0.958,\n"," 0.958,\n"," 0.958,\n"," 0.96,\n"," 0.96,\n"," 0.96,\n"," 0.96,\n"," 0.96,\n"," 0.96,\n"," 0.961,\n"," 0.961,\n"," 0.962,\n"," 0.962,\n"," 0.962,\n"," 0.962,\n"," 0.962,\n"," 0.962,\n"," 0.962,\n"," 0.963,\n"," 0.964,\n"," 0.964,\n"," 0.964,\n"," 0.964,\n"," 0.965,\n"," 0.965,\n"," 0.965,\n"," 0.966,\n"," 0.966,\n"," 0.966,\n"," 0.967,\n"," 0.967,\n"," 0.967,\n"," 0.968,\n"," 0.968,\n"," 0.969,\n"," 0.969,\n"," 0.969,\n"," 0.969,\n"," 0.97,\n"," 0.971,\n"," 0.972,\n"," 0.972,\n"," 0.973,\n"," 0.973,\n"," 0.973,\n"," 0.974,\n"," 0.974,\n"," 0.974,\n"," 0.974,\n"," 0.976,\n"," 0.976,\n"," 0.976,\n"," 0.976,\n"," 0.977,\n"," 0.977,\n"," 0.978,\n"," 0.978,\n"," 0.978,\n"," 0.979,\n"," 0.979,\n"," ...]"]},"metadata":{"tags":[]},"execution_count":43}]},{"metadata":{"id":"4yTrW8amVWNa","colab_type":"code","outputId":"cc96d184-912f-4391-9171-90410c22a50b","executionInfo":{"status":"ok","timestamp":1551600909022,"user_tz":-480,"elapsed":3262,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":347}},"cell_type":"code","source":["plt.plot(range(len(Ytest)),sorted(Ytest),c=\"black\",label= \"Data\")\n","plt.plot(range(len(yhat)),sorted(yhat),c=\"red\",label = \"Predict\")\n","plt.legend()\n","plt.show()"],"execution_count":0,"outputs":[{"output_type":"display_data","data":{"image/png":"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\n","text/plain":["<Figure size 576x396 with 1 Axes>"]},"metadata":{"tags":[]}}]},{"metadata":{"id":"bvjU2lJcVWNh","colab_type":"code","outputId":"b67168c6-a0b6-42cb-a333-dd7197bbb9bb","executionInfo":{"status":"ok","timestamp":1551600913727,"user_tz":-480,"elapsed":880,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":51}},"cell_type":"code","source":["import numpy as np\n","rng = np.random.RandomState(42)\n","X = rng.randn(100, 80)\n","y = rng.randn(100)\n","cross_val_score(LR(), X, y, cv=5, scoring='r2')"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/plain":["array([-179.85876901,   -5.6827637 ,  -15.19065249,  -77.7207388 ,\n","        -65.13476651])"]},"metadata":{"tags":[]},"execution_count":45}]},{"metadata":{"id":"TsJkLLvZnnQN","colab_type":"text"},"cell_type":"markdown","source":["## 多重共线性：岭回归与Lasso"]},{"metadata":{"id":"FpUaKuavCP4t","colab_type":"text"},"cell_type":"markdown","source":["### 岭回归"]},{"metadata":{"id":"5dbCDLUSVWNj","colab_type":"code","colab":{}},"cell_type":"code","source":["import numpy as np\n","import pandas as pd\n","from sklearn.linear_model import Ridge, LinearRegression, Lasso\n","from sklearn.model_selection import train_test_split as TTS\n","from sklearn.datasets import fetch_california_housing as fch\n","import matplotlib.pyplot as plt\n","\n","housevalue = fch()\n","\n","X = pd.DataFrame(housevalue.data)\n","y = housevalue.target\n","X.columns = [\"住户收入中位数\",\"房屋使用年代中位数\",\"平均房间数目\"\n","            ,\"平均卧室数目\",\"街区人口\",\"平均入住率\",\"街区的纬度\",\"街区的经度\"]"],"execution_count":0,"outputs":[]},{"metadata":{"id":"8nHYTqGmVWNl","colab_type":"code","outputId":"9c966192-5716-4e82-9ad4-6f6b61e229a6","executionInfo":{"status":"ok","timestamp":1551606272642,"user_tz":-480,"elapsed":624,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":221}},"cell_type":"code","source":["X.head()"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/html":["<div>\n","<style scoped>\n","    .dataframe tbody tr th:only-of-type {\n","        vertical-align: middle;\n","    }\n","\n","    .dataframe tbody tr th {\n","        vertical-align: top;\n","    }\n","\n","    .dataframe thead th {\n","        text-align: right;\n","    }\n","</style>\n","<table border=\"1\" class=\"dataframe\">\n","  <thead>\n","    <tr style=\"text-align: right;\">\n","      <th></th>\n","      <th>住户收入中位数</th>\n","      <th>房屋使用年代中位数</th>\n","      <th>平均房间数目</th>\n","      <th>平均卧室数目</th>\n","      <th>街区人口</th>\n","      <th>平均入住率</th>\n","      <th>街区的纬度</th>\n","      <th>街区的经度</th>\n","    </tr>\n","  </thead>\n","  <tbody>\n","    <tr>\n","      <th>0</th>\n","      <td>8.3252</td>\n","      <td>41.0</td>\n","      <td>6.984127</td>\n","      <td>1.023810</td>\n","      <td>322.0</td>\n","      <td>2.555556</td>\n","      <td>37.88</td>\n","      <td>-122.23</td>\n","    </tr>\n","    <tr>\n","      <th>1</th>\n","      <td>8.3014</td>\n","      <td>21.0</td>\n","      <td>6.238137</td>\n","      <td>0.971880</td>\n","      <td>2401.0</td>\n","      <td>2.109842</td>\n","      <td>37.86</td>\n","      <td>-122.22</td>\n","    </tr>\n","    <tr>\n","      <th>2</th>\n","      <td>7.2574</td>\n","      <td>52.0</td>\n","      <td>8.288136</td>\n","      <td>1.073446</td>\n","      <td>496.0</td>\n","      <td>2.802260</td>\n","      <td>37.85</td>\n","      <td>-122.24</td>\n","    </tr>\n","    <tr>\n","      <th>3</th>\n","      <td>5.6431</td>\n","      <td>52.0</td>\n","      <td>5.817352</td>\n","      <td>1.073059</td>\n","      <td>558.0</td>\n","      <td>2.547945</td>\n","      <td>37.85</td>\n","      <td>-122.25</td>\n","    </tr>\n","    <tr>\n","      <th>4</th>\n","      <td>3.8462</td>\n","      <td>52.0</td>\n","      <td>6.281853</td>\n","      <td>1.081081</td>\n","      <td>565.0</td>\n","      <td>2.181467</td>\n","      <td>37.85</td>\n","      <td>-122.25</td>\n","    </tr>\n","  </tbody>\n","</table>\n","</div>"],"text/plain":["   住户收入中位数  房屋使用年代中位数    平均房间数目    平均卧室数目    街区人口     平均入住率  街区的纬度   街区的经度\n","0   8.3252       41.0  6.984127  1.023810   322.0  2.555556  37.88 -122.23\n","1   8.3014       21.0  6.238137  0.971880  2401.0  2.109842  37.86 -122.22\n","2   7.2574       52.0  8.288136  1.073446   496.0  2.802260  37.85 -122.24\n","3   5.6431       52.0  5.817352  1.073059   558.0  2.547945  37.85 -122.25\n","4   3.8462       52.0  6.281853  1.081081   565.0  2.181467  37.85 -122.25"]},"metadata":{"tags":[]},"execution_count":47}]},{"metadata":{"id":"tIJquYSMVWNr","colab_type":"code","colab":{}},"cell_type":"code","source":["Xtrain,Xtest,Ytrain,Ytest = TTS(X,y,test_size=0.3,random_state=420)"],"execution_count":0,"outputs":[]},{"metadata":{"id":"JjpDtO0LVWNs","colab_type":"code","colab":{}},"cell_type":"code","source":["for i in [Xtrain,Xtest]:\n","    i.index = range(i.shape[0])"],"execution_count":0,"outputs":[]},{"metadata":{"id":"epHFssYSVWNu","colab_type":"code","outputId":"5f8f019b-0f28-4faf-fc5b-735872bda485","executionInfo":{"status":"ok","timestamp":1551606515278,"user_tz":-480,"elapsed":706,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":221}},"cell_type":"code","source":["Xtrain.head()"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/html":["<div>\n","<style scoped>\n","    .dataframe tbody tr th:only-of-type {\n","        vertical-align: middle;\n","    }\n","\n","    .dataframe tbody tr th {\n","        vertical-align: top;\n","    }\n","\n","    .dataframe thead th {\n","        text-align: right;\n","    }\n","</style>\n","<table border=\"1\" class=\"dataframe\">\n","  <thead>\n","    <tr style=\"text-align: right;\">\n","      <th></th>\n","      <th>住户收入中位数</th>\n","      <th>房屋使用年代中位数</th>\n","      <th>平均房间数目</th>\n","      <th>平均卧室数目</th>\n","      <th>街区人口</th>\n","      <th>平均入住率</th>\n","      <th>街区的纬度</th>\n","      <th>街区的经度</th>\n","    </tr>\n","  </thead>\n","  <tbody>\n","    <tr>\n","      <th>0</th>\n","      <td>4.1776</td>\n","      <td>35.0</td>\n","      <td>4.425172</td>\n","      <td>1.030683</td>\n","      <td>5380.0</td>\n","      <td>3.368817</td>\n","      <td>37.48</td>\n","      <td>-122.19</td>\n","    </tr>\n","    <tr>\n","      <th>1</th>\n","      <td>5.3261</td>\n","      <td>38.0</td>\n","      <td>6.267516</td>\n","      <td>1.089172</td>\n","      <td>429.0</td>\n","      <td>2.732484</td>\n","      <td>37.53</td>\n","      <td>-122.30</td>\n","    </tr>\n","    <tr>\n","      <th>2</th>\n","      <td>1.9439</td>\n","      <td>26.0</td>\n","      <td>5.768977</td>\n","      <td>1.141914</td>\n","      <td>891.0</td>\n","      <td>2.940594</td>\n","      <td>36.02</td>\n","      <td>-119.08</td>\n","    </tr>\n","    <tr>\n","      <th>3</th>\n","      <td>2.5000</td>\n","      <td>22.0</td>\n","      <td>4.916000</td>\n","      <td>1.012000</td>\n","      <td>733.0</td>\n","      <td>2.932000</td>\n","      <td>38.57</td>\n","      <td>-121.31</td>\n","    </tr>\n","    <tr>\n","      <th>4</th>\n","      <td>3.8250</td>\n","      <td>34.0</td>\n","      <td>5.036765</td>\n","      <td>1.098039</td>\n","      <td>1134.0</td>\n","      <td>2.779412</td>\n","      <td>33.91</td>\n","      <td>-118.35</td>\n","    </tr>\n","  </tbody>\n","</table>\n","</div>"],"text/plain":["   住户收入中位数  房屋使用年代中位数    平均房间数目    平均卧室数目    街区人口     平均入住率  街区的纬度   街区的经度\n","0   4.1776       35.0  4.425172  1.030683  5380.0  3.368817  37.48 -122.19\n","1   5.3261       38.0  6.267516  1.089172   429.0  2.732484  37.53 -122.30\n","2   1.9439       26.0  5.768977  1.141914   891.0  2.940594  36.02 -119.08\n","3   2.5000       22.0  4.916000  1.012000   733.0  2.932000  38.57 -121.31\n","4   3.8250       34.0  5.036765  1.098039  1134.0  2.779412  33.91 -118.35"]},"metadata":{"tags":[]},"execution_count":50}]},{"metadata":{"id":"22cp5Lw2VWNv","colab_type":"code","outputId":"d21556de-afcd-4cd7-9dbb-884d8be6fe6b","executionInfo":{"status":"ok","timestamp":1551606552518,"user_tz":-480,"elapsed":983,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":34}},"cell_type":"code","source":["#使用岭回归来进行建模\n","reg = Ridge(alpha=1).fit(Xtrain,Ytrain)\n","reg.score(Xtest,Ytest) #加利佛尼亚房屋价值数据集中应该不是共线性问题"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/plain":["0.6043610352312281"]},"metadata":{"tags":[]},"execution_count":51}]},{"metadata":{"id":"51WW7GNiVWNx","colab_type":"code","outputId":"b790c941-7383-46bb-f650-ae3ad0864f12","executionInfo":{"status":"ok","timestamp":1551606755953,"user_tz":-480,"elapsed":1561,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":362}},"cell_type":"code","source":["#交叉验证下，与线性回归相比，岭回归的结果如何变化？\n","alpharange = np.arange(1,1001,100)\n","ridge, lr = [], []\n","for alpha in alpharange:\n","    reg = Ridge(alpha=alpha)\n","    linear = LinearRegression()\n","    regs = cross_val_score(reg,X,y,cv=5,scoring = \"r2\").mean()\n","    linears = cross_val_score(linear,X,y,cv=5,scoring = \"r2\").mean()\n","    ridge.append(regs)\n","    lr.append(linears)\n","plt.plot(alpharange,ridge,color=\"red\",label=\"Ridge\")\n","plt.plot(alpharange,lr,color=\"orange\",label=\"LR\")\n","plt.title(\"Mean\")\n","plt.legend()\n","plt.show()"],"execution_count":0,"outputs":[{"output_type":"display_data","data":{"image/png":"iVBORw0KGgoAAAANSUhEUgAAAe0AAAFZCAYAAAC173eYAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzs3Xl8FPX9x/HXbDab+4QkiIIVigep\nyGFRjkQICSThELWYgBxVPJBEqIKgCA2IRlFUBBQRkQqCBgSROyCKoiLgUaD8WhEQRORIIPd97O+P\n2K14EI5kJ5u8n49HH2V2Z2c+8yH43pn55juG3W63IyIiInWexewCRERE5NwotEVERFyEQltERMRF\nKLRFRERchEJbRETERSi0RUREXIRCW6Seu+qqqxg1atSvXn/ssce46qqrTKhIRC6UQlukAfjmm2/I\nz893LJeWlrJnzx4TKxKRC6HQFmkAbrjhBjZt2uRY/uSTT7j22mvPWOf999+nb9++9OjRg7vuuovT\np08DUFRUxN/+9jd69epFVFQU06ZNc3xmyJAhLFiwgIEDBxIREcFDDz2E5msSqT0KbZEGIC4ujjVr\n1jiW165dS2xsrGP5yJEjjBs3jueee47Nmzdzww03MHnyZADeeustCgoK2LBhA++++y4rVqzgiy++\ncHz2gw8+YMGCBaSnp/P555/z1VdfOe24RBoahbZIA9CxY0e+/fZbTp06RVFREV9//TWdOnVyvP/x\nxx/TsWNHrrzySgASExP54IMPqKio4K677uLll1/GMAwCAgJo1aoVP/zwg+OzsbGxeHp64u3tzR/+\n8AeOHTvm9OMTaSisZhcgIrXPzc2Nnj17sn79eoKDg+natStW6//++efl5fHFF1+ccfbt6+tLdnY2\neXl5PP300xw8eBCLxcLx48e59dZbz1jv5/upqKhwzkGJNEAKbZEGIj4+nhdeeIGgoCAGDRp0xnuh\noaF07tyZmTNn/upzDz/8MOHh4bz00ku4ubmRmJjorJJF5Bd0eVykgWjXrh0nT57k22+/pWPHjme8\n17VrV7744guOHDkCwO7du3niiScAOHXqFNdccw1ubm58+umnHD58mMLCQqfXLyI60xZpMAzDICYm\nhqKiIiyWM7+vh4aGMnXqVJKSkigrK8PHx4cJEyYAcP/99/PUU0/x8ssv06NHD5KTk5k5cybXXHON\n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\n","text/plain":["<Figure size 576x396 with 1 Axes>"]},"metadata":{"tags":[]}}]},{"metadata":{"id":"obs14QI5VWN1","colab_type":"code","outputId":"95b09958-4734-45a9-a492-6af49a82006a","executionInfo":{"status":"ok","timestamp":1551606779335,"user_tz":-480,"elapsed":1151,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":34}},"cell_type":"code","source":["#使用岭回归来进行建模\n","reg = Ridge(alpha=100).fit(Xtrain,Ytrain)\n","reg.score(Xtest,Ytest) #加利佛尼亚房屋价值数据集中应该不是共线性问题"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/plain":["0.6035331141925429"]},"metadata":{"tags":[]},"execution_count":54}]},{"metadata":{"id":"9j6WuxfiVWN3","colab_type":"code","outputId":"28933982-2f07-456f-bfab-5076bbb947d0","executionInfo":{"status":"ok","timestamp":1551606786073,"user_tz":-480,"elapsed":2388,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":362}},"cell_type":"code","source":["#细化一下学习曲线\n","alpharange = np.arange(1,201,10)\n","ridge, lr = [], []\n","for alpha in alpharange:\n","    reg = Ridge(alpha=alpha)\n","    linear = LinearRegression()\n","    regs = cross_val_score(reg,X,y,cv=5,scoring = \"r2\").mean()\n","    linears = cross_val_score(linear,X,y,cv=5,scoring = \"r2\").mean()\n","    ridge.append(regs)\n","    lr.append(linears)\n","plt.plot(alpharange,ridge,color=\"red\",label=\"Ridge\")\n","plt.plot(alpharange,lr,color=\"orange\",label=\"LR\")\n","plt.title(\"Mean\")\n","plt.legend()\n","plt.show()"],"execution_count":0,"outputs":[{"output_type":"display_data","data":{"image/png":"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\nRU5ErkJggg==\n","text/plain":["<Figure size 576x396 with 1 Axes>"]},"metadata":{"tags":[]}}]},{"metadata":{"id":"flauD2CAVWN6","colab_type":"code","outputId":"7ecc2fc0-d53a-435e-ddff-85de0781e7a5","executionInfo":{"status":"ok","timestamp":1551606912435,"user_tz":-480,"elapsed":2228,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":362}},"cell_type":"code","source":["#模型方差如何变化？\n","alpharange = np.arange(1,1001,100)\n","ridge, lr = [], []\n","for alpha in alpharange:\n","    reg = Ridge(alpha=alpha)\n","    linear = LinearRegression()\n","    varR = cross_val_score(reg,X,y,cv=5,scoring=\"r2\").var()\n","    varLR = cross_val_score(linear,X,y,cv=5,scoring=\"r2\").var()\n","    ridge.append(varR)\n","    lr.append(varLR)\n","plt.plot(alpharange,ridge,color=\"red\",label=\"Ridge\")\n","plt.plot(alpharange,lr,color=\"orange\",label=\"LR\")\n","plt.title(\"Variance\")\n","plt.legend()\n","plt.show()"],"execution_count":0,"outputs":[{"output_type":"display_data","data":{"image/png":"iVBORw0KGgoAAAANSUhEUgAAAfIAAAFZCAYAAABjSq39AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzs3XlcVPX+x/HXzMCwDgjGoKkZ6r3W\nJStpuXUxbREx28sFvZRme1ZWmhVZWrmUmpVmmYVL2YKZlXVLy7KbXblZambezF8uBJYIgsCwz8z5\n/UFNmQKawGHg/Xw8etTMme+Zz/mEvjnfs1kMwzAQERERv2Q1uwARERH58xTkIiIifkxBLiIi4scU\n5CIiIn5MQS4iIuLHFOQiIiJ+TEEu0sIMHTqUV1555aD3MzIyGDp06GGv56OPPuL+++9vyNJEpBEo\nyEVamCuvvJJ33333oPffeecdrrzyysNeT1JSElOnTm3I0kSkEVh0QxiRlsXlctGrVy/effddOnXq\nBEBOTg6XXHIJa9as4YMPPmD+/Pl4PB5iYmKYNm0aHTp0YNmyZXzyySeUlJQQHx9Pt27dWL58OQsX\nLiQ/P597772X3bt3U1VVxdVXX821114LwPnnn8+NN97I0qVL2bNnDxdffDH33XcfAG+//TbPPfcc\nACeffDKTJ0/GbrezatUqnn76acrKyujcuTMzZswgOjranIaJ+DntkYu0MOHh4fTt25d33nnH9967\n777LBRdcQGVlJY888ggLFizgww8/5LjjjuPZZ5/1fe4///kPDz/8MOPGjTtgnc899xwdO3ZkxYoV\nLFq0iCeeeIKff/7Zt/zLL78kIyODN998k8WLF7Nnzx5ycnJ4/PHHeemll1ixYgXl5eW89NJLZGdn\nM27cOJ544gk+/vhj/v73vzNx4sRG74tIS6UgF2mB/ji9vnz5cq688kratm3L+vXradeuHQCnn346\n2dnZvs8df/zxHH/88Qetb/z48Tz44IMAdOrUiZiYGHJycnzLL7nkEmw2G7GxsbRt25aff/6Z//zn\nP/Ts2ZPY2FgsFgtPPPEEI0aM4LPPPuPMM8/kr3/9KwApKSl88skneDyexmiFSIsXYHYBItLwzjrr\nLCorK9m0aRNWq5Xy8nLOOussPB4Ps2bN8gVnaWkpcXFxvnGRkZGHXN/mzZt9e+FWq5W8vDy8Xq9v\neXh4uO+/bTYbHo+HwsJCIiIifO8HBQUBUFJSwldffUX//v0PGL9//37atm3bYD0QaS0U5CItkNVq\n5bLLLuO9997DZrNx2WWXYbVaeffdd/nkk09YvHgx0dHRLFmy5JAnxv3RPffcw/Dhwxk6dCgWi4Vz\nzjmn3jFRUVFs3LjR99rlclFRUYHT6eQf//gHs2bNOqptFJEamloXaaGuvPJKPvnkEz7++GPf2er7\n9u2jQ4cOREdHU1hYyAcffEBpaWm969q3bx8nnXQSFouFt956i/LycsrKyuoc06dPHzZs2EBOTg6G\nYTBhwgSWLl1Kr169+Oqrr3xT+t988w2TJk06+g0WaaW0Ry7SQnXu3Bmn0+n7b4CLL76Yf/3rXyQl\nJdGpUyfuvPNObrnlFh577DHfMetDGT16NKNGjaJNmzakpKQwZMgQHnzwQV599dVax7Rr145HHnmE\n4cOHY7PZ6NGjB9deey1BQUE8+uijjBo1iurqasLCwkhLS2vYjRdpRXT5mYiIiB/T1LqIiIgfU5CL\niIj4MQW5iIiIH1OQi4iI+DEFuYiIiB/zy8vP8vJKGnR9UVGhFBbWfU2sHD31uWmoz01DfW466jXE\nxDhqXaY9ciAgwGZ2Ca2C+tw01OemoT43HfW6bgpyERERP6YgFxER8WMKchERET+mIBcREfFjCnIR\nERE/piAXERHxYwpyERERP+aXN4Rprn7++SeuuSaF7t1PAKC6upouXboxcuQNLFjwAuPGPXDA5595\n5im6dOnKgAGXmFGuiIi0AAryBnbccZ155pl5vteTJ09k/fovDwpxERGRhqAgb2R/+9tJfPnlF7zx\nxuukp7/MypXv88ori4iJiSUoKIguXbricrkYP34clZWVnH12Iu+++zZvvLGcTZs28vzzcwgICMDp\njOXee8cTGBho9iaJiEgz0iKDPGzieILeffvwB1gtRHuNOj9SecnllE6cdER1uN1u1qz5N2eddTa7\ndu3EMAyef34O6ekv43BEcN11qQCsWPEexx/fhTvvHMuyZW9gGDW1PPXUdJ5++jkiIiJ59tmnWb16\nFf36XXhENYiISBPweLD+tBtb1i5sP2bhPeYYqpro7+sWGeRm+vHHLG677UYAtm//gX/+8xrOOedc\nVq78gKKiIkJDw4iKigagR49TANi1axc9e54GQK9evXn11ZcoKNhHTk42aWn3AFBRUUFkZBsTtkhE\nRAAs+wuxZe3C+mMWtl27akI7a2fN65xsLNXVvs8aoWHk79gN1sY/p7xFBnnpxElHtPccE+OgoIGe\nqPb7Y+Tjx4+jU6fOvmWGYWC1WnyvvV7vr0t871ssNf8OCAjkmGNiDjjeLiIijaiqClvOj1izsn4J\n6V2/BXfWLqxF+w85zBvjxH3yqXg6H4/n+OPxHnc81Wf8vUlCHFpokDcXt946mjFjbmfKlBkAREZG\n4nK5KCkpISQkhM2bN3HSSSdz7LEd2br1O847ry///e9aACIiIgDYuXMHcXFdWLr0dU499TS6dfuL\nadsjIuLXDANLXh62H38X0r9MhduydmH9aTcW3w7W74aFhOA5rjPVfz8LT+fj8XY+Hs9xx9cE93Gd\nISzMhI35jYK8ER17bAfOPfcCFi1KB8BqtTJy5I3cdtuNtG/fni5dugIwYMAl3H//3dx2242cccbf\nsf7yW9x99z3ElCkPExhYs3d+6aVXmrYtIiJ+oawMW/aP2LJ2HhTUtqxdWMoOfq65YbHgbX8s1X8/\n+5eQ7lwT0p3j8HQ+HsPpBIvlEF/WPFiMX8+s8iN5DTQN/quYGEeDr/NI7NnzM1lZu/j738/m22+/\nIT39eZ58co5p9TQWs/vcWqjPTUN9bjoH9Nrrxbrn599CetfO3/aos3Zh25t7yHV4HRG/25vu/Ns0\neOfj8XQ8DoKCmnCLjlxMjKPWZdojbwbCwsLJyHiFhQtfwDDgzjvHml2SiIi5KioI2LKZgK83QvYO\nIrduqwnq7B+xVFUd9HHDZsPbsRNVvc/D07nzb6H9S3AbUdHNeq/6aCjImwGHw8HMmc+YXYaIiDnc\nbmxbvyPw6w0EfL2RgK83EPDdlgPOArcD3rZtcZ/UA89xnfH+Mu39a1B7O3SEgNYZaa1zq0VExBxe\nL7Yd2wnYuJ6ArzcQuHEDAVs2Yykv933ECArCffIpuE9NoPqUnkSccxb5ETEYjggTC2++FOQiItI4\nDANr9o8EbNpYE9hfbyBg09dYS4p/+4jNhueEv1HdMwH3qQm4T+2J+4S/gd3+23piHBg6H6FWCnIR\nEWkQltzcmunxjetrwvvrDVj37TvgM+6//JWq5Atx90yg+tQE3PE9IDTUpIpbhsMK8ilTprBp0yYs\nFgtpaWmcfPLJvmVr165l5syZ2Gw2evfuzahRo+ods2bNGq6//nq+//57AOLj40lISPAtX7hwITab\nrUE2UEREGp6lsICATV//EtwbCNi0EdtPuw/4jOe4zlQk9sZ9Sk/cPRNwn3KqpscbQb1Bvm7dOrKy\nssjIyGD79u2kpaWRkZHhWz5p0iTS09OJjY0lNTWV5ORkCgoKah1TWVnJvHnziImJ8a0jPDycl19+\nuRE2r2n9/PNPjB9/L+npv21LevrzfPTRCo45pmZ7KysrSE29lj59zjOrTBGRI+NyEbh50y8noq0n\ncOMGbLt2HvARjzOWyuQLfdPj1ackYBxzjEkFty71BnlmZiZ9+/YFoGvXrhQVFeFyuQgPDyc7O5vI\nyEjat28PQJ8+fcjMzKSgoKDWMXPnzmXYsGFMnz69ETereRk0KIWrrhoCQHFxESNGDOOss84mKCjY\n5MpERP6gsrLmsq+NGwjcVHMGuW3b9wfc8czbpg1Vfc6juudpNcHdMwFvu/Yt9vKu5q7eIM/Pzyc+\nPt73Ojo6mry8PMLDw8nLyyM6OvqAZdnZ2RQWFh5yTF5eHlu3bmX06NEHBHlVVRVjxoxh9+7dJCcn\nc+211zbU9jU7ERGRtG17DPn5+XTo0NHsckSkNXO7sX2/9bfp8UNc9mWEhlH997N90+PVpybgPT5O\nod2MHPHJbn/mRnC/jpk6dSrjx48/aPm4ceO49NJLsVgspKamcvrpp9OjR49a1xcVFUpAQB3H0Dfe\nAz++cUQ1xtT3geMGQc+6ZxEqK8MICLAecAeesLAgwsODfe/t2LGD4uL9/O1vXbH//qzMVqKuuxNJ\nw1Gfm4bf9TkrCz7/HL78suafjRvhd5d9YbdDz55wxhk1/5x+OpYTTsBus2H231Z+1+smVG+QO51O\n8vPzfa/37t3rO779x2W5ubk4nU4CAwMPGmO329mxYwdjx471vZeamsrixYsZOnSo77NnnXUW27Zt\nqzPICwsPvlfu74WVVRHkOfxfOGw2C556Pl9ZVkVpPZc/FBSU4nZ7D7htY2lpJW+/vZB33/0XZWWl\nVFVVM378IxQVVQKVh11jS6BbWjYN9blp+EWf3W4CvvqSoI9WYP9oBQFbv/Mt8l32dWpP3/T4QZd9\nARTU/fdtU/CLXjeyo7pFa2JiIrNnzyYlJYUtW7bgdDoJDw8HoGPHjrhcLnJycmjXrh2rV69mxowZ\nFBYWHjSmQ4cOrFq1yrfe888/n8WLF7Njxw7mzJnDjBkz8Hg8bNiwgf79+x/VBpf+dRKlfzXnMaaH\n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\n","text/plain":["<Figure size 576x396 with 1 Axes>"]},"metadata":{"tags":[]}}]},{"metadata":{"id":"RPNWC5E9VWN7","colab_type":"code","colab":{}},"cell_type":"code","source":["from sklearn.datasets import load_boston\n","from sklearn.model_selection import cross_val_score\n","\n","X = load_boston().data\n","y = load_boston().target\n","\n","Xtrain,Xtest,Ytrain,Ytest = TTS(X,y,test_size=0.3,random_state=420)"],"execution_count":0,"outputs":[]},{"metadata":{"id":"MZRcjnEVVWN-","colab_type":"code","outputId":"7e4b2ab8-232e-451d-ce0a-31ed606762f2","executionInfo":{"status":"ok","timestamp":1551607740559,"user_tz":-480,"elapsed":666,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":34}},"cell_type":"code","source":["X.shape"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/plain":["(506, 13)"]},"metadata":{"tags":[]},"execution_count":58}]},{"metadata":{"id":"FSDLaYKlVWOA","colab_type":"code","outputId":"38b6373d-0af8-43a9-b3bf-7dda42febd5e","executionInfo":{"status":"ok","timestamp":1551607745449,"user_tz":-480,"elapsed":1519,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":362}},"cell_type":"code","source":["#先查看方差的变化\n","alpharange = np.arange(1,1001,100)\n","ridge, lr = [], []\n","for alpha in alpharange:\n","    reg = Ridge(alpha=alpha)\n","    linear = LinearRegression()\n","    varR = cross_val_score(reg,X,y,cv=5,scoring=\"r2\").var()\n","    varLR = cross_val_score(linear,X,y,cv=5,scoring=\"r2\").var()\n","    ridge.append(varR)\n","    lr.append(varLR)\n","plt.plot(alpharange,ridge,color=\"red\",label=\"Ridge\")\n","plt.plot(alpharange,lr,color=\"orange\",label=\"LR\")\n","plt.title(\"Variance\")\n","plt.legend()\n","plt.show()"],"execution_count":0,"outputs":[{"output_type":"display_data","data":{"image/png":"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\nTkSuQmCC\n","text/plain":["<Figure size 576x396 with 1 Axes>"]},"metadata":{"tags":[]}}]},{"metadata":{"id":"z4EUZjloVWOG","colab_type":"code","outputId":"b87eeac6-5ecb-40f6-81f4-d651acf7dbf8","executionInfo":{"status":"ok","timestamp":1551607750506,"user_tz":-480,"elapsed":1197,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":362}},"cell_type":"code","source":["#查看R2的变化\n","alpharange = np.arange(1,1001,100)\n","ridge, lr = [], []\n","for alpha in alpharange:\n","    reg = Ridge(alpha=alpha)\n","    linear = LinearRegression()\n","    regs = cross_val_score(reg,X,y,cv=5,scoring = \"r2\").mean()\n","    linears = cross_val_score(linear,X,y,cv=5,scoring = \"r2\").mean()\n","    ridge.append(regs)\n","    lr.append(linears)\n","plt.plot(alpharange,ridge,color=\"red\",label=\"Ridge\")\n","plt.plot(alpharange,lr,color=\"orange\",label=\"LR\")\n","plt.title(\"Mean\")\n","plt.legend()\n","plt.show()"],"execution_count":0,"outputs":[{"output_type":"display_data","data":{"image/png":"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\n","text/plain":["<Figure size 576x396 with 1 Axes>"]},"metadata":{"tags":[]}}]},{"metadata":{"id":"QRWY4wDLVWOI","colab_type":"code","outputId":"c7930a66-db4e-4059-b6f9-3862de86d713","executionInfo":{"status":"ok","timestamp":1551607790324,"user_tz":-480,"elapsed":1174,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":362}},"cell_type":"code","source":["#细化学习曲线\n","alpharange = np.arange(100,300,10)\n","ridge, lr = [], []\n","for alpha in alpharange:\n","    reg = Ridge(alpha=alpha)\n","    #linear = LinearRegression()\n","    regs = cross_val_score(reg,X,y,cv=5,scoring = \"r2\").mean()\n","    #linears = cross_val_score(linear,X,y,cv=5,scoring = \"r2\").mean()\n","    ridge.append(regs)\n","    lr.append(linears)\n","plt.plot(alpharange,ridge,color=\"red\",label=\"Ridge\")\n","#plt.plot(alpharange,lr,color=\"orange\",label=\"LR\")\n","plt.title(\"Mean\")\n","plt.legend()\n","plt.show()"],"execution_count":0,"outputs":[{"output_type":"display_data","data":{"image/png":"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\n1y5yc3MBWLJkCYmJiWRnZ9O3b9/6nEVERMSv1fmLy4ZhVP/3vLw8MjMzycjIYO/evdXXd+vWjbVr\n15KcnEyrVq1o3rx59f0uvvhiLrroIiZMmMDUqVO58847j/hYMTGh2O22ukasUVxcRL3/TrP540zg\nn3NpJt/hj3P540zgv3P9WY2lHR8fT3Z2dvXlffv2EXdg7+6VK1eSk5NDcnIyLpeLnTt3kp6eTmpq\n6iHL5T169KBJkyZ89tln9OzZE4vFQq9evXjhhReO+ti5uSXHOtcRxcVFkOVnO6L540zgn3NpJt/h\nj3P540zgf3Md7Q+QGpfHu3TpwoIFCwDYtGkT8fHxhIeHA5CYmMi8efOYO3cukydPJiEhgdTUVDZv\n3szIkSOBquXwNm3aYLVaeeGFF/jhhx8AWL9+PaeffvpxDyciIhIoanyn3aFDBxISEkhKSsJisTBm\nzBgyMzOJiIigZ8+eh71Py5YtMQyDfv36ERQUxIQJEwBIS0vjiSeewGazERwcXH1UuYiIiNTMYhz8\nIbWIiIh4Le2IJiIi4iNU2iIiIj5CpS0iIuIjVNoiIiI+QqUtIiLiI1TaIiIiPqLO25j6gp9++om7\n776bG2+8kUGDBrFnzx5GjBiB2+0mLi6OZ599FqfTyYcffsiMGTOwWq1cf/319O/f3+zoR3S4mUaO\nHEllZSV2u51nn32WuLg4EhIS6NChQ/X9pk+fjs1W/1vB1pc/z/Xoo4+yadMmoqOjAbjlllu45JJL\nfPq5GjZsWPXe+3l5eZxzzjnccccd9OnTh7POOguAmJgYJk2aZGbsoxo/fjxr1qyhsrKSO+64g7Zt\n2/r8awoOP5evv67+PNOiRYt8/jUFf53r448/9vnX1TEx/ExxcbExaNAgY9SoUcbMmTMNwzCMRx99\n1Jg3b55hGIYxceJE46233jKKi4uNyy+/3CgoKDBKS0uNK6+80sjNzTUz+hEdbqYRI0YYn3zyiWEY\nhvHmm28azzzzjGEYhtGxY0fTctbV4eZ65JFHjEWLFv3ldr78XB3s0UcfNdavX2/s2rXLuOaaa0xI\nWHcrVqwwbr31VsMwDCMnJ8fo1q2bz7+mDOPwc/n66+pwM/n6a8owDj/XwXzxdXWs/G553Ol08uqr\nrxIfH1993ddff0337t0BuPTSS1mxYgXr16+nbdu2REREEBwcTIcOHVi7dq1ZsY/qcDONGTOGXr16\nAVV/Tebl5ZkV75gdbq7D8fXn6nfbtm2jsLCw+rS1vuL888/n+eefByAyMpLS0lKff03B4efy9dfV\n4WZyu91/uZ0/PFe/z+Wrr6tj5XelbbfbCQ4OPuS60tJSnE4nAE2aNCErK4vs7GxiY2Orb/PnU456\nk8PNFBoais1mw+12M1pfWbkAAAN+SURBVGvWLPr06QOAy+XiwQcfJCkpiYyMDDPi1trh5gJ48803\nGTx4MMOHDycnJ8fnn6vfvfHGGwwaNKj6cnZ2NsOGDSMpKYkPP/ywsSLWmc1mIzQ0FIB3332Xiy++\n2OdfU3D4uXz9dXW4mWw2m0+/puDIc4Hvvq6OlV9+pn00xhF2bT3S9d7M7XYzYsQIOnXqROfOnQEY\nMWIEffv2xWKxMGjQIM477zzatm1rctLau+qqq4iOjqZ169ZMnTqVyZMn0759+0Nu44vPlcvlYs2a\nNYwdOxaA6Oho7rvvPvr27UthYSH9+/enU6dONa46mOnzzz/n3Xff5fXXX+fyyy+vvt7XX1MHzwX+\n8bo6eKbvvvvOb15Tf36u/OF1VVd+9077cEJDQykrKwNg7969xMfHH/aUo772xI4cOZJTTz2VoUOH\nVl93ww03EBYWRmhoKJ06deKnn34yMWHdde7cmdatWwNw2WWX8dNPP/nFc7V69epDlu/Cw8O57rrr\ncDgcxMbGctZZZ7Ht/9u7X5fVoTgM4I8vDn+AVsVgkYHNsiRY/AtEBIsmwSLKYMVgsE3FZlH8C2xi\nELRaTCszmCyiRURQNCnecGHhZfdyr0XP3ufTHAvn4fDwlXHgbDZvXOHfLRYL9Pt9DIdDBAIBx3Tq\ney5A/F59z+SUTtntlei9esWPGNrJZNK6XnQ+nyOVSiGRSMA0TZzPZ1yvVxiGAUVR3rzSfzeZTCBJ\nEmq1mvVss9lA0zQ8n0/c73cYhgFZlt+4yv9XrVax3W4B/D6LIMuy8HsFAKZpIh6PW7+XyyV0XQcA\n3G43rNfrj72q9nK5oNPpYDAYWCeQndApu1yi98oukxM6ZZcLELtXr3Lc5/HVaoV2u43dbge3243Z\nbIZut4t6vY7RaIRIJIJMJgNJkqBpGkqlElwuFyqVivXv7dPYZToej/B4PCgWiwCAWCyGZrOJcDiM\nXC6Hr68vpNPpjz6cYZerUChAVVX4fD74/X7oug6v1yv0XvV6PRwOB0SjUes9RVEwHo+Rz+fxeDxQ\nLpcRCoXeuPI/m06nOJ1OUFXVetZqtdBoNITtFGCfa7/fIxgMCtsru0zZbFboTgH2udrtttC9ehWv\n5iQiIhLEj/g8TkRE5AQc2kRERILg0CYiIhIEhzYREZEgOLSJiIgEwaFNREQkCA5tIiIiQXBoExER\nCeIXq5rT07NXUVoAAAAASUVORK5CYII=\n","text/plain":["<Figure size 576x396 with 1 Axes>"]},"metadata":{"tags":[]}}]},{"metadata":{"id":"qx6SA9nxCF2U","colab_type":"text"},"cell_type":"markdown","source":["#### 选取最佳的正则化参数取值"]},{"metadata":{"id":"FU5BB9hJVWOL","colab_type":"code","colab":{}},"cell_type":"code","source":["import numpy as np\n","import pandas as pd\n","from sklearn.linear_model import RidgeCV, LinearRegression\n","from sklearn.model_selection import train_test_split as TTS\n","from sklearn.datasets import fetch_california_housing as fch\n","import matplotlib.pyplot as plt\n","\n","housevalue = fch()\n","\n","X = pd.DataFrame(housevalue.data)\n","y = housevalue.target\n","X.columns = [\"住户收入中位数\",\"房屋使用年代中位数\",\"平均房间数目\"\n","            ,\"平均卧室数目\",\"街区人口\",\"平均入住率\",\"街区的纬度\",\"街区的经度\"]"],"execution_count":0,"outputs":[]},{"metadata":{"id":"PWGqtLXDVWOL","colab_type":"code","colab":{}},"cell_type":"code","source":["Ridge_ = RidgeCV(alphas=np.arange(1,1001,100)\n","                 #,scoring=\"neg_mean_squared_error\"\n","                 ,store_cv_values=True\n","                 #,cv=5\n","                ).fit(X, y)"],"execution_count":0,"outputs":[]},{"metadata":{"id":"yHZxTaolVWON","colab_type":"code","outputId":"be90955c-91a9-43fe-8f95-57a873b378d4","executionInfo":{"status":"ok","timestamp":1551609229490,"user_tz":-480,"elapsed":1073,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":34}},"cell_type":"code","source":["#无关交叉验证的岭回归结果\n","Ridge_.score(X,y)"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/plain":["0.6060251767338426"]},"metadata":{"tags":[]},"execution_count":64}]},{"metadata":{"id":"9YPICJJjVWOO","colab_type":"code","outputId":"44f0ab30-ac97-487d-9a04-3549330079ad","executionInfo":{"status":"ok","timestamp":1551609261296,"user_tz":-480,"elapsed":782,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":238}},"cell_type":"code","source":["#调用所有交叉验证的结果\n","Ridge_.cv_values_"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/plain":["array([[0.1557472 , 0.16301246, 0.16892723, ..., 0.18881663, 0.19182353,\n","        0.19466385],\n","       [0.15334566, 0.13922075, 0.12849014, ..., 0.09744906, 0.09344092,\n","        0.08981868],\n","       [0.02429857, 0.03043271, 0.03543001, ..., 0.04971514, 0.05126165,\n","        0.05253834],\n","       ...,\n","       [0.56545783, 0.5454654 , 0.52655917, ..., 0.44532597, 0.43130136,\n","        0.41790336],\n","       [0.27883123, 0.2692305 , 0.25944481, ..., 0.21328675, 0.20497018,\n","        0.19698274],\n","       [0.14313527, 0.13967826, 0.13511341, ..., 0.1078647 , 0.10251737,\n","        0.0973334 ]])"]},"metadata":{"tags":[]},"execution_count":65}]},{"metadata":{"id":"w4bA4ITzHqgq","colab_type":"code","outputId":"41f8a18a-0fae-4fe1-ed12-166d5b5b04c1","executionInfo":{"status":"ok","timestamp":1551609282449,"user_tz":-480,"elapsed":780,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":34}},"cell_type":"code","source":["Ridge_.cv_values_.shape"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/plain":["(20640, 10)"]},"metadata":{"tags":[]},"execution_count":66}]},{"metadata":{"id":"Djq76tyJVWOP","colab_type":"code","outputId":"c41df37c-1fb1-4866-acd6-89499b487ecf","executionInfo":{"status":"ok","timestamp":1551609288254,"user_tz":-480,"elapsed":982,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":51}},"cell_type":"code","source":["#进行平均后可以查看每个正则化系数取值下的交叉验证结果\n","Ridge_.cv_values_.mean(axis=0)"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/plain":["array([0.52823795, 0.52787439, 0.52807763, 0.52855759, 0.52917958,\n","       0.52987689, 0.53061486, 0.53137481, 0.53214638, 0.53292369])"]},"metadata":{"tags":[]},"execution_count":67}]},{"metadata":{"id":"aBwGRU4QVWOR","colab_type":"code","outputId":"7087efb3-bb98-4e3e-f632-15b8cff99b1f","executionInfo":{"status":"ok","timestamp":1551609292203,"user_tz":-480,"elapsed":1066,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":34}},"cell_type":"code","source":["#查看被选择出来的最佳正则化系数\n","Ridge_.alpha_"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/plain":["101"]},"metadata":{"tags":[]},"execution_count":68}]},{"metadata":{"id":"umqNQko2H0Vh","colab_type":"text"},"cell_type":"markdown","source":["### Lasso"]},{"metadata":{"id":"N8EEGaNWVWOS","colab_type":"code","outputId":"cf27577b-665b-45e0-8c30-9b829f7575c4","executionInfo":{"status":"ok","timestamp":1551610466826,"user_tz":-480,"elapsed":767,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":221}},"cell_type":"code","source":["import numpy as np\n","import pandas as pd\n","from sklearn.linear_model import Ridge, LinearRegression, Lasso\n","from sklearn.model_selection import train_test_split as TTS\n","from sklearn.datasets import fetch_california_housing as fch\n","import matplotlib.pyplot as plt\n","\n","housevalue = fch()\n","\n","X = pd.DataFrame(housevalue.data)\n","y = housevalue.target\n","X.columns = [\"住户收入中位数\",\"房屋使用年代中位数\",\"平均房间数目\"\n","            ,\"平均卧室数目\",\"街区人口\",\"平均入住率\",\"街区的纬度\",\"街区的经度\"]\n","\n","X.head()"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/html":["<div>\n","<style scoped>\n","    .dataframe tbody tr th:only-of-type {\n","        vertical-align: middle;\n","    }\n","\n","    .dataframe tbody tr th {\n","        vertical-align: top;\n","    }\n","\n","    .dataframe thead th {\n","        text-align: right;\n","    }\n","</style>\n","<table border=\"1\" class=\"dataframe\">\n","  <thead>\n","    <tr style=\"text-align: right;\">\n","      <th></th>\n","      <th>住户收入中位数</th>\n","      <th>房屋使用年代中位数</th>\n","      <th>平均房间数目</th>\n","      <th>平均卧室数目</th>\n","      <th>街区人口</th>\n","      <th>平均入住率</th>\n","      <th>街区的纬度</th>\n","      <th>街区的经度</th>\n","    </tr>\n","  </thead>\n","  <tbody>\n","    <tr>\n","      <th>0</th>\n","      <td>8.3252</td>\n","      <td>41.0</td>\n","      <td>6.984127</td>\n","      <td>1.023810</td>\n","      <td>322.0</td>\n","      <td>2.555556</td>\n","      <td>37.88</td>\n","      <td>-122.23</td>\n","    </tr>\n","    <tr>\n","      <th>1</th>\n","      <td>8.3014</td>\n","      <td>21.0</td>\n","      <td>6.238137</td>\n","      <td>0.971880</td>\n","      <td>2401.0</td>\n","      <td>2.109842</td>\n","      <td>37.86</td>\n","      <td>-122.22</td>\n","    </tr>\n","    <tr>\n","      <th>2</th>\n","      <td>7.2574</td>\n","      <td>52.0</td>\n","      <td>8.288136</td>\n","      <td>1.073446</td>\n","      <td>496.0</td>\n","      <td>2.802260</td>\n","      <td>37.85</td>\n","      <td>-122.24</td>\n","    </tr>\n","    <tr>\n","      <th>3</th>\n","      <td>5.6431</td>\n","      <td>52.0</td>\n","      <td>5.817352</td>\n","      <td>1.073059</td>\n","      <td>558.0</td>\n","      <td>2.547945</td>\n","      <td>37.85</td>\n","      <td>-122.25</td>\n","    </tr>\n","    <tr>\n","      <th>4</th>\n","      <td>3.8462</td>\n","      <td>52.0</td>\n","      <td>6.281853</td>\n","      <td>1.081081</td>\n","      <td>565.0</td>\n","      <td>2.181467</td>\n","      <td>37.85</td>\n","      <td>-122.25</td>\n","    </tr>\n","  </tbody>\n","</table>\n","</div>"],"text/plain":["   住户收入中位数  房屋使用年代中位数    平均房间数目    平均卧室数目    街区人口     平均入住率  街区的纬度   街区的经度\n","0   8.3252       41.0  6.984127  1.023810   322.0  2.555556  37.88 -122.23\n","1   8.3014       21.0  6.238137  0.971880  2401.0  2.109842  37.86 -122.22\n","2   7.2574       52.0  8.288136  1.073446   496.0  2.802260  37.85 -122.24\n","3   5.6431       52.0  5.817352  1.073059   558.0  2.547945  37.85 -122.25\n","4   3.8462       52.0  6.281853  1.081081   565.0  2.181467  37.85 -122.25"]},"metadata":{"tags":[]},"execution_count":69}]},{"metadata":{"id":"uFfCTgX6VWOU","colab_type":"code","colab":{}},"cell_type":"code","source":["Xtrain,Xtest,Ytrain,Ytest = TTS(X,y,test_size=0.3,random_state=420)"],"execution_count":0,"outputs":[]},{"metadata":{"id":"RwKZsfM_VWOV","colab_type":"code","colab":{}},"cell_type":"code","source":["for i in [Xtrain,Xtest]:\n","    i.index = range(i.shape[0])"],"execution_count":0,"outputs":[]},{"metadata":{"id":"uWIUatVRVWOX","colab_type":"code","outputId":"fd7b957c-025d-4a1c-9421-e62a965f48ec","executionInfo":{"status":"ok","timestamp":1551610630050,"user_tz":-480,"elapsed":763,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":153}},"cell_type":"code","source":["#线性回归进行拟合\n","reg = LinearRegression().fit(Xtrain,Ytrain)\n","(reg.coef_*100).tolist()"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/plain":["[43.73589305968403,\n"," 1.0211268294493994,\n"," -10.780721617317697,\n"," 62.64338275363783,\n"," 5.216125353261353e-05,\n"," -0.3348509646333585,\n"," -41.3095937894772,\n"," -42.6210953620847]"]},"metadata":{"tags":[]},"execution_count":72}]},{"metadata":{"id":"4FCUM0U9VWOZ","colab_type":"code","outputId":"27e0e92d-2bfd-4416-980c-b2904cea6f6e","executionInfo":{"status":"ok","timestamp":1551610632906,"user_tz":-480,"elapsed":753,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":153}},"cell_type":"code","source":["#岭回归进行拟合\n","Ridge_ = Ridge(alpha=0).fit(Xtrain,Ytrain)\n","(Ridge_.coef_*100).tolist()"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/plain":["[43.735893059684116,\n"," 1.0211268294494105,\n"," -10.780721617317774,\n"," 62.643382753638235,\n"," 5.2161253532686975e-05,\n"," -0.3348509646333582,\n"," -41.30959378947694,\n"," -42.621095362084525]"]},"metadata":{"tags":[]},"execution_count":73}]},{"metadata":{"id":"dZ5LX00HVWOa","colab_type":"code","outputId":"134b5b53-e804-4d3d-ea1c-f754fa482050","executionInfo":{"status":"ok","timestamp":1551610636405,"user_tz":-480,"elapsed":1184,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":275}},"cell_type":"code","source":["#Lasso进行拟合\n","lasso_ = Lasso(alpha=0).fit(Xtrain,Ytrain)\n","(lasso_.coef_*100).tolist()"],"execution_count":0,"outputs":[{"output_type":"stream","text":["/usr/local/lib/python3.6/dist-packages/ipykernel_launcher.py:1: UserWarning: With alpha=0, this algorithm does not converge well. You are advised to use the LinearRegression estimator\n","  \"\"\"Entry point for launching an IPython kernel.\n","/usr/local/lib/python3.6/dist-packages/sklearn/linear_model/coordinate_descent.py:478: UserWarning: Coordinate descent with no regularization may lead to unexpected results and is discouraged.\n","  positive)\n","/usr/local/lib/python3.6/dist-packages/sklearn/linear_model/coordinate_descent.py:492: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations. Fitting data with very small alpha may cause precision problems.\n","  ConvergenceWarning)\n"],"name":"stderr"},{"output_type":"execute_result","data":{"text/plain":["[43.73589305968342,\n"," 1.0211268294493907,\n"," -10.780721617316845,\n"," 62.643382753634114,\n"," 5.216125353261574e-05,\n"," -0.3348509646333514,\n"," -41.309593789478356,\n"," -42.62109536208602]"]},"metadata":{"tags":[]},"execution_count":74}]},{"metadata":{"id":"ZKHGx07xVWOb","colab_type":"code","outputId":"fbb808db-352c-4ea6-f379-e1ae29545969","executionInfo":{"status":"ok","timestamp":1551610722121,"user_tz":-480,"elapsed":738,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":153}},"cell_type":"code","source":["#岭回归进行拟合\n","Ridge_ = Ridge(alpha=0.1).fit(Xtrain,Ytrain)\n","(Ridge_.coef_*100).tolist()"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/plain":["[43.734534807869636,\n"," 1.0211508518425643,\n"," -10.778109335481988,\n"," 62.629789975804975,\n"," 5.225552031936704e-05,\n"," -0.3348478363544367,\n"," -41.30937006538767,\n"," -42.620680507684675]"]},"metadata":{"tags":[]},"execution_count":75}]},{"metadata":{"id":"ALVcDlWAVWOd","colab_type":"code","outputId":"b73eda76-510a-45c0-d15b-75ecb00ecbca","executionInfo":{"status":"ok","timestamp":1551610729283,"user_tz":-480,"elapsed":1340,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":153}},"cell_type":"code","source":["#Lasso进行拟合\n","lasso_ = Lasso(alpha=0.1).fit(Xtrain,Ytrain)\n","(lasso_.coef_*100).tolist()"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/plain":["[39.088514383296754,\n"," 1.6054695654279874,\n"," -0.0,\n"," 0.0,\n"," 0.0023777014839091457,\n"," -0.3050186895638114,\n"," -10.771509301655554,\n"," -9.294344477958175]"]},"metadata":{"tags":[]},"execution_count":76}]},{"metadata":{"id":"hM5DqYREVWOe","colab_type":"code","colab":{}},"cell_type":"code","source":["[43.73589305968403,\n"," 1.0211268294494038,\n"," -10.780721617317715,\n"," 62.64338275363783,\n"," 5.216125353178735e-05,\n"," -0.33485096463336095,\n"," -41.30959378947711,\n"," -42.621095362084674]"],"execution_count":0,"outputs":[]},{"metadata":{"id":"1X0AJrWVVWOh","colab_type":"code","outputId":"1158d587-363c-47a4-aa67-aa9b7ba1a7b6","executionInfo":{"status":"ok","timestamp":1551610825179,"user_tz":-480,"elapsed":986,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":153}},"cell_type":"code","source":["#加大正则项系数，观察模型的系数发生了什么变化\n","Ridge_ = Ridge(alpha=10**10).fit(Xtrain,Ytrain)\n","(Ridge_.coef_*100).tolist()"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/plain":["[0.00021838533330206374,\n"," 0.00021344956264503437,\n"," 6.213673042878622e-05,\n"," -3.828084920732733e-06,\n"," -0.0014984087286952848,\n"," -4.175243714653837e-05,\n"," -5.295061194474961e-05,\n"," -1.3268982521957727e-05]"]},"metadata":{"tags":[]},"execution_count":77}]},{"metadata":{"id":"oq59fcHbVWOj","colab_type":"code","outputId":"61b0f538-33b4-4838-f6b7-f67a72309a11","executionInfo":{"status":"ok","timestamp":1551610829072,"user_tz":-480,"elapsed":912,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":34}},"cell_type":"code","source":["lasso_ = Lasso(alpha=10**4).fit(Xtrain,Ytrain)\n","(lasso_.coef_*100).tolist()"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/plain":["[0.0, 0.0, 0.0, -0.0, -0.0, -0.0, -0.0, -0.0]"]},"metadata":{"tags":[]},"execution_count":78}]},{"metadata":{"id":"k_ujiQ6UVWOk","colab_type":"code","outputId":"9724db15-aa62-445a-82e7-c2d52c9f3f01","executionInfo":{"status":"ok","timestamp":1551610835265,"user_tz":-480,"elapsed":1614,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":153}},"cell_type":"code","source":["#看来10**4对于Lasso来说是一个过于大的取值\n","lasso_ = Lasso(alpha=1).fit(Xtrain,Ytrain)\n","(lasso_.coef_*100).tolist()"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/plain":["[14.581141247629464,\n"," 0.6209347344423849,\n"," 0.0,\n"," -0.0,\n"," -0.00028065986329010634,\n"," -0.0,\n"," -0.0,\n"," -0.0]"]},"metadata":{"tags":[]},"execution_count":79}]},{"metadata":{"id":"EyuseVemVWOn","colab_type":"code","outputId":"791d4ba2-51a0-409b-b247-019865c3d6e2","executionInfo":{"status":"ok","timestamp":1551610846536,"user_tz":-480,"elapsed":975,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":361}},"cell_type":"code","source":["#将系数进行绘图\n","plt.plot(range(1,9),(reg.coef_*100).tolist(),color=\"red\",label=\"LR\")\n","plt.plot(range(1,9),(Ridge_.coef_*100).tolist(),color=\"orange\",label=\"Ridge\")\n","plt.plot(range(1,9),(lasso_.coef_*100).tolist(),color=\"k\",label=\"Lasso\")\n","plt.plot(range(1,9),[0]*8,color=\"grey\",linestyle=\"--\")\n","plt.xlabel('w') #横坐标是每一个特征所对应的系数\n","plt.legend()\n","plt.show()"],"execution_count":0,"outputs":[{"output_type":"display_data","data":{"image/png":"iVBORw0KGgoAAAANSUhEUgAAAeQAAAFYCAYAAACCpo/3AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzs3Xd4FOXexvHvbM9uEggkQZCioIAi\ngkjvSBcUkCqK+qrHjqioKCIgCGIvB1GP2JUiAREUCB2RJk1UFCkqXUggIcn2Mu8fCUFMaMnuzmb3\n97kuL5PN5Jl7kpA7055RVFVVEUIIIYSmdFoHEEIIIYQUshBCCBERpJCFEEKICCCFLIQQQkQAKWQh\nhBAiAkghCyGEEBHAoOXKMzJygz5mUpKVrCxH0MeNNLKd0UW2M3rEwjaCbGdppKQkFPt61O0hGwx6\nrSOEhWxndJHtjB6xsI0g2xkKUVfIQgghRFkkhSyEEEJEAClkIYQQIgJIIQshhBARQApZCCGEiABS\nyEIIIUQEkEIWQgghIoCmE4MIIYQQ4XD48CFGjRrBBx98VvjaBx+8x5Ili0hOTgHA7XZx663/R7t2\nHTTJKIUshBAiZvXvP4i+fQcCkJNzgjvuGEzz5i0wmy1hzyKHrIUQQgggMbEcFSsmk5mZqcn6ZQ9Z\nCC15vZjnzIK7btM6iRBhYRs7CvP8uUEd031Db+xjny/1OPv2/UVW1nFSUysFIdWFk0IWQkOW6Z+T\n8PgwyDwMDw7XOo4QMWfWrBmsWLEMh8OOx+NlzJjnMRqNmmSRQhZCQ6aF3+S/8fnn8MBjoCjaBhIi\nxOxjnw/K3mywnDyHnJmZybBh91Gr1uWaZZFzyEJoJS8P0+pV+W/v2YNh80Zt8wgRw5KTk+nWrQcf\nffS+ZhlkD1kIjZhWLEPxePBe2xjj5k1YZn9JXuOmWscSImrt27eXhx66p/B9i8VCixatCt8fOPAW\nbr99EN2796RmzVphz1eqQp43bx5Tp07FYDDw8MMPU6dOHZ588kn8fj8pKSm8/PLLmEymYGUVIqqY\n0xcAkDd+Ekm334x57mzyxr0AGp2/EiKaVa5chSVLvjvrMiaTienT54QpUVElPmSdlZXF22+/zbRp\n03j33XdZtmwZb731FoMHD2batGnUqFGDtLS0YGYVInr4fJiWpuO/qDK+Ro3h5pvRHTuGaeUyrZMJ\nITRS4kJet24dLVq0ID4+ntTUVMaPH8+GDRvo2LEjAB06dGDdunVBCypENDFu3IDu+HE8Xa8HnQ5u\nuQUAc9pMjZMJIbRS4kPWBw4cwOVycd9995GTk8PQoUNxOp2Fh6grVqxIRkbGWcdISrJiMOhLGuGM\nUlISgj5mJJLtLMO+WwpA3MC+xKUkQHITuPxyLIsWYLEACVG4zQWi8vv5L7GwjSDbGWylOoecnZ3N\n5MmTOXToELfddhuqqhZ+7J9vn0lWlqM0qy9WSkoCGRm5QR830sh2lmGqStKcr9BbbWRe1RgycklJ\nScDepz+2lyaS88k03AMHa50yJKLy+/kvsbCNINtZ2jGLU+JD1hUrVuSaa67BYDBQvXp1bDYbNpsN\nl8sFwJEjR0hNTS3p8EJELf3uXRj+/APPdZ3I3x3O5+o7AACLHLYWIiaVuJBbt27N+vXrCQQCZGVl\n4XA4aNmyJenp6QAsXryYNm3aBC2oENHCtPBbANxdu5/2euDSmnivbYJx9Sp0R/7WIpoQQkMlPmRd\nqVIlunbtyoAB+X/Vjxo1ivr16zNixAhmzpxJlSpV6N27d9CCChEtzOkLUHU6PJ26FvmYq99AEjZv\nxPxVGs77HtIgnRDR6fDhQ9x22yDq1KkLgNfrpWbNy7jzzv/w0Ufv8+STz5y2/OTJb1CzZi1uvz18\np49KdQ550KBBDBo06LTXPvroo1IFEiKaKRkZGDb9gLdZC9SKFYt83N3rJuKffQpz2pdSyEIEWfXq\nNZg8+X+F70+YMJbNmzcWKWOtyExdQoSReckiFFXF061HsR9Xk5PxXNcJ8+JF6H/fgb/gr3khRPBd\neeVVbNy4gVmzZvDBB5+Rnr6AL774hJSUSpjNZmrWrEVubi6PPPIAbrebFi1aMX/+XGbNmse2bVt5\n7723MRgMpKZWYsSIUaV+KIUUshBhZFqUPzuXp1v3My7j7jsA8+JFmGd/iWPk6HBFEyIsbDtHYT4S\n5McvVuqNvfaFPbDC5/OxevUqmjdvwV9//Ymqqrz33tt88MFnJCQkctddtwIwd+5cLrmkJo888jhz\n5swqvIPojTde5s033yExsRxTprzJihVL6dLlzP+uz4cUshDh4nRiWrUc3+W18de87IyLubteT8AW\nj2XOLBxPjcqfOEQIUWr/nMt6z57d3HLLbbRp05709IWcOHECq9VGUlIFAOrXb1Cw3J7Ct1u3bsu0\naZ9y/PgxDhzYz8iRTwDgcrkoV658qfNJIQsRJqbVK1GczjMeri5kteLpeSOWmdMw/LABX/MW4Qko\nRBjYaz9/wXuzwfLPc8ijRj1JtWo1Cj+mqio63anHnwYCgSKvKwWPRzUYjCQnp5x2PjoY5E9vIcLk\n5OFqd9frz7msq99AQO5JFiJUHnhgGO+++9/CuTPKlStHXl4eubm5+Hw+fv55GwDVq1dnx47fAFi/\nfi0AiYmJAPz55x8ApKXNYPfuXaXOJIUsRDgEApjTFxJITsZ3beNzLu5t3RZ/pYswz5sDHk8YAgoR\nW6pUuZj27TvyyScfAKDT6bjzznt46KF7GDXqycLHL/bp04efftrKQw/dw/Hjx9AVnEJ66qnRTJz4\nHA88cDc//bSN6tVrnHFd50sOWQsRBoatm9FlHMV5862gP4/52/V63H36YX13MqZlS/B0P8dhbiHE\nWVWuXIUPPvjstNfuvffB097v2bMXPXv2Ou01pzOHO+74D82ateCXX37ixx+3ANCgQUPef/+ToGaU\nPWQhwsBceHX1+Reru78cthZCawkJCcyc+QX3338nkye/UaTEg0n2kIUIA1P6AlSLBU/b9uf9Ob6r\nrsZXpy6mxQtRTmSjBuEqTiHEhUlMTOS11yaHZV2yhyxEiOn+/APDjt/yy9hmO/9PVBTcfQeguN2Y\nv5kXsnxCiMgghSxEiJkXLwQu7HD1Sa6b+uePMfvLoGYSQkQeKWQhQqzwdqfO3S74cwPVa+Bp3hLj\nmtXoDh4IdjQhRASRQhYihJSs4xjXr8V7bWPUSpVKNIa730AUVcU8Jy3I6YQQkUQKWYgQMi1bguL3\n4zmPyUDOxH1DL1SjUa62FqIUDh8+xF13DdE6xllJIQsRQoWHq0tw/vgkNakCnk5dMfy2Hf32X4IV\nTQgRYeS2JyFCxe3GtHwp/hqXlPoxiq5+AzEv/AbL7C+x17sqSAGFiG0bN25g6tR3MRqNJCQkMG7c\nJNxuN6NHP4XH48Hr9TJ+/HNYrRVOe+2xx0ZQp05dpkx5k59/3obP56dv3wF0K8Uf3iCFLETIGNd+\njy4vF8ctQ0BRzv0JZ+Hp3JVAYjnMs7/EPmqsPAFKlFljx45i/vzgPn7xhht6M3bshT+wIjc3lzFj\nnqdKlYsZP340Gzasw+/3kZKSytNPj+bgwQMcO5bBb7/tPu21/fv38eOPW/jjjz28886HOJ1Obr99\nEG3btsdqvYBbG/9F/lULESLm9ILZuUpx/riQxYL7hl7oDx/CuPb70o8nhKB8+fK8+OLzPPTQPWzd\nupmcnBPUq3c127f/zMsvT+TgwQO0bdu2yGvNm7dkx45fadiwEQBxcXFccklN9u/fX6o8socsRCio\nKqb0hQTKl8fbLDiPT3T3G0jcF59iTpuJt3XboIwpRLiNHft8ifZmQ+GFF8bz8stvcMkll/Laay8C\nkJyczMcfT2fLlk189VUaf/75OwMH3n7aa9u3/4zVakVVT43l83lPe3xjScgeshAhYPjlJ/QHD+Dp\n2AWMxqCM6W3RCn+VizHP/xoKHhknhCg5uz2PSpUuIjc3ly1bNuP1etm4cQMbN26gadPmPProE/zy\nyy9FXtux41fq1q3H1q2bAXA4HBw8eICqVauXKo/sIQsRAqbCh0kE4XD1STod7r4DsP73dUxLFuG5\noXfwxhYiBuzbt5eHHrqn8P0rr6zH/fffRbVq1bnlltv48MP/MWbM87z99pt88cUn6HQ6hg9/FJMp\ngXHjni187a677qVBg4bUqVOXBx/8Dz6fj/vue4i4uLhS5VNU9Z873eGVkZEb9DFTUhJCMm6kke2M\nbOU7tsGw41eO7fgTNSHxnMuf73bqf91OhfYtcHfrQc6n04MRNazK6vfzQsTCNoJsZ2nHLI4cshYi\nyHQHD2D8eRveVm3Oq4wvhP/KeviuvArTssUoWceDOrYQQltSyEIEmSk9/2ES7mBcXV0MV7+BKF4v\n5nnBvXVECKEtKWQhguzU7U7dQzK++6Z+qIoiU2kKEWWkkIUIIiU3B+P33+Gt34BA1WohWUegysV4\nW7XBuGEdur1/hWQdQojwk0IWIoiMK5aheL0h2zs+yd1vIACWObNCuh4hRPhIIQsRROZQ3O5UDHfP\nG1HNZsxpM0G7GyWEEEEkhSxEsHi9mJam469yMb76DUK6KjWxHO6u12PYtRPDz9tCui4hRHhIIQsR\nJMYf1qPLzs4/XF3Kh0mcD3ffAQCYZ8nFXUJEAylkIYKk8NnHIbrd6d88HTsTSErC/FUa+P1hWacQ\nInSkkIUIBlXFnL6AQHwC3lZtwrNOkwn3jTehP3oE4+pV4VmnECJkpJCFCAL97zvQ//Unnus6gdkc\ntvW6Tl5tLfckC1HmSSELEQSmEE8Gcia+ps3wV6+B6dv5YLeHdd1CiOCSQhYiCMyLFqDq9Xg6dQnv\nihUFV9/+6Ox5hTOECSHKpugpZIcD29hRsGuX1klEjFGOHMGwZRPe5i1RkyqEff3uvvmHrc2zvwz7\nuoUQwRM1haw/fBDrlLfgnntkogQRVuYli1BUNeyHq0/y166Dt8E1mJYvRcnM1CSDEKL0oqaQ/bUu\nx92xM6xciXHVCq3jiBhy8vxxuG53Ko67b38Uvx/z17M1yyCEKJ2oKWQAx8jRANgmPid7ySI8HA5M\nq1bgq1OXwKU1NYvh7tMPVaeTq62FKMOiqpB99RvAwIEYf9yaf9WpECFmWrUCxeXC062HpjkClS7C\n27Y9xs2b0P2xR9MsQoiSiapCBmDcOFS9Htuk8TJ7kQi5U4ertTl//E+F9yTLxV1ClEnRV8i1a+O6\n+VYMO3/HPGuG1mlENPP7MS9eSCAlFV+jxlqnwXN9T9S4OHkClBBlVKkK2eVy0alTJ+bMmcPhw4cZ\nMmQIgwcPZtiwYXg8nmBlvGCO4SNQzWZsL78AbrdmOUR0M2zehC4zM3/vWKf937ZqfALu7j0w/PkH\nhi2btI4jhLhApfot8s4771CuXDkA3nrrLQYPHsy0adOoUaMGaWlpQQlYEoGLq+K84270+/dh+ewj\nzXKI6GYunJ1Lu6ur/83dT+5JFqKsKnEh79mzh927d9O+fXsANmzYQMeOHQHo0KED69atC0rAknIM\nG07AFo/ttZdlSkEREqb0BahxcXjatNM6SiFPu+sIJCdjmTsbvF6t4wghLkCJC/nFF1/kqaeeKnzf\n6XRiMpkAqFixIhkZGaVPVwpqcjLO+x5El5mB9f13NM0ioo/+j90Ydv6Op10HsFq1jnOK0Yi7103o\nMjMxrVqudRohxAUwlOST5s6dS8OGDalWrVqxH1fP84KSpCQrBoO+JBHOKiUlIf+N0SPho/exvf0m\ntscfgaSkoK9LS4XbGeUicjs/zS87c/++QcsXtO38z53wwf8oN38O3NwvOGMGUUR+P4MsFrYRZDuD\nrUSFvHLlSvbv38/KlSv5+++/MZlMWK1WXC4XFouFI0eOkJqaes5xsrIcJVn9WaWkJJCRkVvwnkLc\n0MeIf24UjrHPYx81Nujr08rp2xm9InU7y83+CqOicKxZO9Qg5Avqdl56BUmX1kQ/dy7H/jyEGh85\nvzQj9fsZTLGwjSDbWdoxi1OiQ9ZvvPEGs2fP5ssvv6R///488MADtGzZkvT0dAAWL15MmzZhekj7\nOTjv/A/+iyoT9/476I78rXUcEQWU48cwbliH79omqOfxh2fYKQrufgNRnE5MC77ROo0Q4jwF7V6N\noUOHMnfuXAYPHkx2dja9e/cO1tClExeHY/gIFKcT6+sva51GRAHTknSUQAC3xrNznY2r7wAAmUpT\niDKkRIes/2no0KGFb3/0UWTeYuQaPATr229i+exjHPcPJVDjEq0jiTLMnL4QAE+3yLnd6d8CNWvh\nvbYxxu9Wohw5glqpktaRhBDnoP1sBuFgNGIf8QyK15s/WYgQJeVyYVq+FN+lNfFfXlvrNGfl6jcQ\nJRDAMle7OQGEEOcvNgqZ/Kfh+K6oh3nWDPQ7ftM6jiijjGtXozjs+ZOBKIrWcc7K3asvql6POU0m\nCRGiLIiZQkanwz5yNIqqYpv0vNZpRBllXlgwO1f3yD1/fJKanIynQ0eM27ai3/m71nGEEOcQO4UM\neLp0w9u4KeYF82WuX3HhVBVT+gICSUl4mzTTOs15OTWVplzcJUSki6lCRlEK70W2TRyvbRZR5hh+\n+hH934fxdOoKhlJfDxkW7m49CNjiscyeJU+AEiLCxVYhA96WrfG0vw7Tdyswrl6ldRxRhpgWfgsQ\n0bc7FWG14ulxA/p9ezH8sEHrNEKIs4i5QgawPzMGANuEsbLXIM6bOX0hqsmEt8N1Wke5IHJPshBl\nQ0wWsq/BNbh79sK4ZTOmRQu0jiPKAN3+fRi2/4y3dduImoryfHjbtMOfWgnzvDmg4XPKhRBnF5OF\nDGB/ahSqTofthXHg92sdR0Q40+L8yUDcEfTs4/NmMODu0w9dVham5Uu1TiOEOIOYLWR/7Tq4B9yM\nYcdvmOfM0jqOiHCFtzt17a5xkpJx9y+42loOWwsRsWK2kAHsTzyNajJhe3GiHMoTZ6TknMC4djXe\nBtcQqHKx1nFKxFe/Ab7La2NOX4CSc0LrOEKIYsR0IQeqVcd5+53o9/2F5YtPtY4jIpRp+VIUn6/M\n7h0Dp54A5XZj/mae1mmEEMWI6UIGcAx7HNVqw/raS+AI/vOZRdlnWlQGb3cqhuum/gCYZ8tUmkJE\nopgvZDU1Fce996M/8jdxU9/TOo6INF4vpqVL8Fethr/eVVqnKZVAjUvwNmuB8fvv0B06qHUcIcS/\nxHwhAzgfeJhA+fJYJ7+OciJb6zgighjXr0WXcyL/cHWEP0zifLj6DkBRVcxz5AlQQkQaKWRALVce\nx0OPosvOJm7KW1rHERHElJ5/dXWZvN2pGO4be6MajTJJiBARSAq5gPPue/GnVsL63jsoR49qHUdE\nAlXFvGgBgYREvC1ba50mKNQKFfF07ILh11/Q/7pd6zhCiH+QQj7JasXx2JMoDjvWN1/ROo2IAPrf\nfkW/by+ejp3AZNI6TtC4Cu5JtsjFXUJEFCnkf3Ddejv+6pcQ98mH6Pbv0zqO0Jg5/eRkINFxuPok\nT+duBBIS86+2DgS0jiOEKCCF/E8mE/Ynn0bxeLC+MknrNEJjpkXfohoMeDp21jpKcFksuG/ohf7Q\nQYzr1midRghRQAr5X9x9B+CrewWWmdPQ79qpdRyhEd3fhzFu3YK3RSvU8klaxwk6dz+ZSlOISCOF\n/G96PfannkUJBLBNel7rNEIjpsWLgLI7d/W5eFu2xl/lYszzvwaXS+s4QgikkIvl6d4Db6NrMc+f\ni2HbVq3jCA1E2+1OReh0+U+AyjmBaUm61mmEEEghF09RsI8cA4Bt4jiNw4iwy8vD9N1KfFfUI1Dj\nEq3ThIyr4LC13JMsRGSQQj4Db9v2eNq0x7RiGca132sdR4SRadUKFLcbd7foPFx9kr/eVfiuqIdp\naTpK1nGt4wgR86SQz8L+zGgAbBOeA1XVOI0Il2i93ak4rn4DUbze/HPJQghNSSGfha9RY9zde2Lc\nuAHTkkVaxxHh4PdjWrIIf6WL8DVspHWakHPf1A9VUeRqayEigBTyOdiffhZVUbBNHC+TKMQAw8Yf\n0B07hqdLd9BF/z+PwMVV8bZsjWn9WnT79modR4iYFv2/cUrJX/cK3P0GYvj1F8xzZ2sdR4RY4eHq\nKD9//E8n70m2zJmlcRIhYpsU8nmwPzkS1WjMvy/Z69U6jgghU/oCVKsVT+t2WkcJG3fPG1HN5vzD\n1nKthBCakUI+D4Eal+C69Xb0f/2JZfrnWscRIaLfvQvD7l142neEuDit44SNWq48ni7dMez8HcMv\nP2kdR4iYJYV8nhyPPYkaF5c/x7XTqXUcEQKmRQWTgXSL/qur/83VdwAA5llycZcQWpFCPk+BShfh\n/M/96P8+TNxHU7WOI0LAnL4AVafD06mr1lHCztOxM4Hy5TF/lQZ+v9ZxhIhJUsgXwPHQMAKJ5bC+\n9SpKbo7WcUQQKZmZGDZuwNekGWpystZxws9sxn3jTeiP/I3x+++0TiNETJJCvgBq+SScDw1Dd/w4\nce9M1jqOCCLT0nSUQCB6564+DzKVphDakkK+QI677yOQnELcO5NRMjO1jiOCxLzo5O1OsVvIvqbN\n8FerjumbeeBwaB1HiJgjhXyh4uOxP/YEOnse1jdf1TqNCAaXC9PKZfhqXYb/ssu1TqMdnQ5X3wHo\n7HmF92MLIcJHCrkEXEP+D3+16sR9PBXdwQNaxxGlZFq9EsXhwNOth9ZRNOc+ebX17C81TiJE7JFC\nLgmzGfsTT6O43VhffVHrNKKUTIsWAlH87OML4K9TF+/VDTEtXyqnZIQIMynkEnL3H4Svdh0s0z9H\nv2eX1nFESQUCmBYvJFCxIr4mTbVOExHcfQeg+HyYv56jdRQhYooUcknp9dhHjELx+7G+OEHrNKKE\nDD9uQX/kbzydu4Fer3WciODu0xdVp5OrrYUIMynkUvD0vBFvg2uwzJ2D/meZcrAsMhVcvCSHq08J\nXFQZb5t2GDdvRPfnH1rHESJmSCGXhqJgHzkaANsL4zQOI0rCvGghqtmMp10HraNElMJ7kuXiLiHC\nplSF/NJLLzFw4ED69u3L4sWLOXz4MEOGDGHw4MEMGzYMj8cTrJwRy9v+Ojyt2mBeuhjD+nVaxxEX\nQLf3Lwy/bcfTph3Ex2sdJ6J4etyAGhcnT4ASIoxKXMjr169n165dzJw5k6lTpzJx4kTeeustBg8e\nzLRp06hRowZpaWnBzBqZ/rmXPPE5+eVVhpx69rHc7vRvanwC7m7XY/hjD4atm7WOI0RMKHEhN2nS\nhDfffBOAxMREnE4nGzZsoGPHjgB06NCBdetiY4/R16QZ7q7dMa1fi2n5Eq3jiPNkSs+/3cnTpZvG\nSSKTu+CwtdyTLER4lLiQ9Xo9VqsVgLS0NNq2bYvT6cRkMgFQsWJFMjIygpOyDLA/9SyqomCdOB4C\nAa3jiHNQsrMwrv0e7zWNCFxUWes4EcnTviOBihWxfJUGXq/WcYSIeobSDrB06VLS0tL48MMP6dKl\nS+Hr6nkcuk1KsmIwBP9Wk5SUhKCPeU7tW8DNN2OcNo2UVekwYEDIV6nJdmogJNu5ZD74/Rhv6hMx\nX8dIyXGaQYPg7bdJ2bYBuncPypARuZ1BFgvbCLKdwVaqQl69ejXvvvsuU6dOJSEhAavVisvlwmKx\ncOTIEVJTU8/6+VlZwZ/APiUlgYyM3KCPez50Dz9BhS+/xD/yGbLadAZDqf/eOSMttzOcQrWdCbNm\nYwGOt+mEPwK+jpH6/TT06EPS22/jmvoRuY1bl3q8SN3OYIqFbQTZztKOWZwSH7LOzc3lpZde4r33\n3qN8+fIAtGzZkvT0dAAWL15MmzZtSjp8mRSoWQvX4Nsw7NmNZeY0reOIM/F4MC1bir96DfxXXKl1\nmojmu7YJ/ksuxbzoW8jL0zqOEFGtxIW8YMECsrKyeOSRRxgyZAhDhgzhvvvuY+7cuQwePJjs7Gx6\n9+4dzKxlgmP4k6gWC9ZXJoHLpXUcUQzjujXocnNwd+0OiqJ1nMimKLj6DURxODAv/EbrNEJEtRIf\nUx04cCADBw4s8vpHH31UqkBlXaByFZx33oN1ylvEffIBznsf1DqS+Bfzom8Bud3pfLn7DcD2yiQs\naTNx9x+kdRwhopbM1BUCjocfJZCQiPWNV1Dyov8cS5miqpjSFxJILIe3eUut05QJ/pqX4W10LcZV\nK1COHNE6jhBRSwo5BNQKFXE+MBTdsWPEvTdF6zjiH/Tbf0F/YD+eTp3BaNQ6Tpnh6jcQJRDA8vVs\nraMIEbWkkEPEee8DBJKTiZvyX5Tjx7SOIwoUHq6Wh0lcEHevvqh6ff5UmkKIkJBCDhE1PgHHsOHo\ncnOw/vcNreOIAqb0hagGA56OnbWOUqaoKSl42l+H8cet6Hft1DqOEFFJCjmEnLffhf/iqsR98B66\nw4e0jhPzdIcOYty2FW/LNqiJ5bSOU+acmkpT9pKFCAUp5FCyWHA8/hSKy4X1tZe1ThPzTIsXAeDu\nFpwZp2KNu1sPVKsNS9oseYiKECEghRxiroGD8dW6DMsXn8jD3jUm549LyWbD3eMG9Pv+wrDxB63T\nCBF1oqaQVVVl9epVZGVlaR3ldAYDjqdGofh82F6coHWamKXk5WL8/jt89eoTqFZd6zhllqtv/hzt\nlrQZGicRIvpETSHv3Pk7ffveQN26dZk9+8vzerhFuLhv6I33qqsxf5WGfvsvWseJScYVy1E8nvzZ\nuUSJedu2J5CSivnrOeDxaB1HiKgSNYVcu3Ydnn12HDk5Odx//93079+bP/7Yo3WsfDodjmdGo6gq\ntknjtU4Tk07NziWHq0vFYMB1Uz90WVmYVizTOo0QUSVqCllRFIYOfYTt27dz3XWd+O67FbRr15xX\nX30Rt9utdTw813XG07wl5vSFGDZu0DpObPH5MC1Nx39RZXwNrtE6TZlXeLW13JMsRFBFTSGfVLNm\nTaZPn837739MuXLlefHFCVx3XSvWrv1e22CKgn3kGABsE8fJVaphZNy4AV1WVv7FXPIwiVLzXd0Q\n32WXY05fgJJzQus4QkSNqCtkyN9b7tXrJtau3cSdd/6H3bt30bv39Tz88P0cO6bdrFm+5i1wd+qC\nac1qjKtWaJYj1pgWLQDAI7c/A7ZsAAAgAElEQVQ7BYei4O43EMXlwvTtfK3TCBE1orKQT0pMLMek\nSa+ycOEyrrrqambM+IJWra5l+vTPNbvoy/H0swDYJj4ne8nhoKqYFn1LwBaPp3U7rdNEDddN/QGw\npH2pcRIhokdUF/JJjRo1ZvHilTz33ERcLjfDhj1A797Xs3Pn72HP4qvfAFfvmzD+uFX2LsJAv2sn\nhj//wNuhI5jNWseJGoFLLsXbtDnG71fJLHRCBElMFDKAwWDg/vsf4vvvf6Bbtx6sW7eGDh1aMmnS\neJxOZ1izOEY8g6rX519x7feHdd2x5uTharndKfhcfQegqCrmOWlaRxEiKsRMIZ9UtWo1Pv10Oh9/\nPI2UlFRee+1l2rVrzsqVy8OWwV/rclw334ph5++YZ8kEC6FkXvQtqk6Hp1NXraNEHXevPqgGAxa5\n2lqIoIi5Qj7p+ut78v33P3DvvQ+yb99eBgzozX333cmRMD2A3TF8BKrZjO3lFyACbsuKRsrRoxg2\nb8TbrAVqxYpax4k6aoWKeDp1wbD9Z/S//ap1HCHKvJgtZID4+ATGj3+BJUtWcc01jZgzJ41WrRrz\nyScfEggEQrruwMVVcd5xN/r9+7B89lFI1xWrzEvTUVRV5q4OIVfBPcmW2XJxlxClFdOFfFL9+g1Y\nsGAZL7zwCoFAgCeeeISePbuwPcTTXDqGDSdgi8f22stgt4d0XbFIbncKPU/nbgTiEzDP/hJC/Ees\nENFOCrmAXq/nrrvuYe3aTdx4Yx82bfqBTp3a8Nxzz2IPUVmqyck473sQXWYG1vffCck6YpbDgWnV\ncny16+CveZnWaaJXXBzuG3qhP3gA4/q1WqcRokyTQv6Xiy6qzNSpnzB9ehoXX1yVt99+k7Ztm7F4\n8cKQrM/5wFACSUnETX4TJTvCnlRVhplWr0JxOuVwdRjIVJpCBIcU8hl07NiF777bwMMPP8bhw4e4\n9daB3HnnEA4H+Z5LNSERx8PD0eWcwDr5zaCOHctM6Sdvd5JCDjVvy9b4K1fBPG8uuFxaxxGizJJC\nPgur1cqoUWNZtux7mjRpxjfffE2rVk14//138Afx/mHnnf/BX7kKce+/g+7I30EbN2YFApjTFxJI\nTsZ3bWOt00Q/vR53n37ock5gWrpY6zRClFlSyOfhiiuuZP78dF599S0MBj3PPDOCbt2uY9u2rcFZ\nQVwcjuEjUJxOrK+/HJwxY5hhyyZ0GUdxd+kOer3WcWJC4dXWcthaiBKTQj5POp2OIUPuYM2azfTr\nN5Bt27bStWsHRo0aQV5ebqnHd918K75La2L57GN0e/8qfeAYZk7PP98v54/Dx1/vKnxXXIlpabpc\nCyFECUkhX6CUlBSmTHmftLR5XHLJpfzvf+/QqlUTvvlmXukeWGE04hjxDIrXmz9ZiCgxU/oCVIsF\nT9v2WkeJHYqCq+9AFI8H8/yvtU4jRJkkhVxCbdu2Z+XKdQwfPoJjxzK5885bGTJkIPv37yvxmO7e\nffFdeRXmWTPQ7/gtiGljh+7PPzDs+A1Puw5gs2kdJ6a4b+oHyNXWQpSUFHIpWCwWRox4hpUr19Gq\nVRsWL15EmzZNmTz5Tbxe74UPqNNhH/ksiqpim/R88APHAHPB1dVyuDr8AlWr4WnZGtO6NehK8Yep\nELFKCjkILrvscubM+Yb//vdd4uLiGDfuWTp3bsemTT9c8Fiezt3wNm6KecF8DFs2hSBtdDMVnD92\nd+6mcZLYVHhP8pxZGicRouyRQg4SRVEYOHAwa9Zs4pZbbuPXX3+hR4/OPPHEo5w4kX0hA2EfNRYA\n24RxoQkbpZSs4xjXr8V7bWPUSpW0jhOT3Df0QjWZ8q+2Ls01FULEICnkIKtQoSKvvz6ZefMWcfnl\ntfnkkw9o2bIxc+bMOu+LvrwtW+Pp0BHT6pUYv1sZ2sBRxLR0MYrfj7tbD62jxCy1XHk8nbth+H0H\n+l9+1jqOEGWKFHKING/ekuXL1zBy5Ghyc3O47767GDiwD3/++cd5fb595GgAbBOfkz2N82SS250i\ngtyTLETJSCGHkMlk4pFHHmfVqvV06NCRlSuX065dc15//WU8Hs9ZP9fX4BrcN/TGuGVz4VOLxFm4\n3ZiWL8Vf4xL8depqnSameTp1IVCufP555CDOaCdEtJNCDoNLL63JjBlzeO+9D0lISOSFF8Zz3XWt\nWLduzVk/zz7iGVSdDtsL4+QX2zkY16xGl5ebf7haUbSOE9vMZtw39kF/5G+Ma1ZrnUaIMkMKOUwU\nRaFPn36sXbuJO+64i127dtKrV3eGDXuA48ePFfs5/tp1cA0cjGHHb3LV6jkU3u7UTQ5XRwJ3vwGA\nHLYW4kJIIYdZuXLleeml11mwYCn16tVn+vTPadWqMTNmfFHsRV+Ox59CNZmwvTgRznGYO2apKqb0\nhQTKl8fbtLnWaQTgbdYCf9VqmL6ZBw6H1nGEKBOkkDVy7bVNWLJkFWPHTsDpdPLww/dz00092bVr\n52nLBapVx3n7nej3/YXli081ShvZDD9vQ3/oIJ6OXcBo1DqOANDpcPcdgC4vF3OIniUuRLSRQtaQ\nwWDggQeGsnr1D3Tt2p01a1bTvn0LJk16Htc/nivrGPY4qtWG9bWXZG+jGCcvenN3l9udIsnJq63N\ns7/UOIkQZYMUcgSoVq06n346g48++oLk5BRee+0l2rVrzqpVKwBQU1Nx3Hs/+iN/Ezf1PY3TRh5T\n+kJUoxFvh45aRxH/4K9TF+9VV2NatgTlWPHXSQghTpFCjhCKotCjxw2sWbORe+99gL17/6J//17c\nf//dHD16FOcDDxMoXx7r5NdRLmTmryinO3gA48/b8LZqg5qQqHUc8S/ufgNRfD7MX8/ROooQEU8K\nOcLExycwfvwkFi9eScOG1zB79pe0atWYT77+irwHh6HLziZuyltax4wYhYerZXauiOS+qR+qosjV\n1kKcBynkCHX11Q1ZuHA5Eye+hN/v5/HHh9Fp0QJ+rFAB63vvwKFDWkeMCKee7tRd4ySiOIGLKuNt\n0x7jph/Q/fWn1nGEiGiGYA84ceJEtm3bhqIojBw5kquvvjrYq4gZer2eu+++jx49bmTUqKeYP38u\nTXQ6Hg0EaFu7NoFefaFXH0yJiZhMZsxmMyaTqeD/ZsxmE2azBYPBgBKFk2UouTkY16zGW78BgYur\nah1HnIGr3wBM363AMvtLaCK/D4Q4k6AW8g8//MDevXuZOXMme/bsYeTIkcycKYeqSqty5Sp88MGn\nLF2azlMjhvPy/n28bLfDtE/z/zsHRVEKS/pUYZvO8JrlXx83FVP2p147+d+5xzZjseT/32g0BuUP\nBNPypSher+wdRzhPjxtQn3wUc9pMeGG81nGEiFiKer6PIDoPb775JlWqVKF///4AdOvWjbS0NOLj\n44tdPiMjN1irBl8eCb89wrs/1Cr2YQzNqhzk2osOAzBvd20O5BS9AKhKQi69L/8dgB+PVGLtwWrF\nrurehpvR61SOOeOY+Vu9YpfpXmsXl5Y7AcDHPzfA4S16f+xVKUdpWy3/Qe7L9l7C78eSiyxTzuLi\nlit/AWDn8Qos/rMmDrefQEBF9QdQAwFUFU6s/xiHTsFrSaRKw76g5n8ZVAr+r6r8smU1u3f+itsb\n4LpufUmqkFL48ZN2797NN998A0CrVq1o0qRJkUwej4cpU6YAULVqVfr161fs12DmzJkcPpz/NR86\ndCh6vf60jysK/LT1B37/ZTMmo47WHbpzUZUaoICCgqKAAuSdyOD3zfmHplOq1qVa7Wb5A6gBFBVU\nnQIo/LhqGgG/F7M1kXrN+xSb6Y+fV5KdsTf/69+yLyZL0Z/NzEM72bdjHQDV67YguUrtol8DVx6/\nrJ0NQPmUGtSs377Y9W1f/xVuRw46vZGG7QYXu8z+nRs4duh3AgGVOtdej61cSpFlTmTuZ89PywGo\nfGkDKl/asMgyqhpg64rPALCVS6HOtcXPWrZzyyLyso8A0LDdYHT6oj+bf+/9mUN7tgBQs357yqfU\nKLKMI/cYOzbm/6wkV6lN9botil3fttUzCBzPxGywUK/7nZz2r7Pg77K/tiwl6+AuUODK9oMxx5cv\nMs7xA7+z96eVAFSt14qUGlcVWcbndvDzyi8AhXIp1anZqMvpCxSs77e1X+HMy0LR6bmm0x3F5j6w\nayNH920HoHajbsQnXVRkmZzjh9j94xIALqpRnyq1GqEA//4NtGX5JwBYEypSt0nPYte3+8cl5BzP\nPxXVoM0g9EZzkWWO7tvOgd35z0m/tF5bkipdWmQZZ14Wv/0wD4CKlWtR44rWxa7v5++/xOtxYjTF\nUb/1gGKX2fvb9xw7vAeAK5reSFx8UuHHTm5n1pE/+XP7dwBUvawxqdWL/k70e91sWz0DgMQKVbis\nYedi17dj4zc4cvOvyG903e3FLnNozxb+3pv/JLHLGnYmsUKVIsvkZf3Nzq3pAKRWr0fVyxoXO9bW\nFZ+hqgHibElc0ezGYpf5a3Ma496cR/nUmsV+vCRSUhKKfT2oe8iZmZnUq3fqm1GhQgUyMjLOWMhJ\nSVYMBn2xH7tg9iw4tgj8dxb7Yb19B6ZjG/PfdidAwFRkGZ37CKZjSwuWbwSBor8YAUzHl6NX/Bg9\nyRCoVewyxpytmHz5T3ZSfJdCwFY0k/MPTMdWFrzdBQJFv046b1ZhJkNeHXRqFeKLRmf4nQESjTk4\n/U7e2xcoNtOt/d3UT8y/j3naQZWj/5r4S1WhdRV4vzu4vbDVAbs8/yj1gv8rKsx4CNw+yFEgy1Z0\nGRXo2xTs2fljxVsA5eQfB6eWs5kCGBU3Lhc43T68frXgD4RTv9KOZntYvCn/H2lDn52US/69fSqg\nsnzrcTweD0lJAWo1Kv5rsGVXDrt3549V9Wofibqiy/152MmygvV1LOckPrnoMjl5vsJMl12WRJU6\nxa/v+5+zycrKwmQyUbdF8cts/8vOjz9mApBUy0PluKLLHcx0F66vucFB0sVFl/H7/YXLVK5sokb9\n4tf3w44cDhwoyN7Uj8lU9N/grgMO1hSM1fMiN5ZyRcfKPOEtXF/9+nmk1ix+fSu2Hsfl8pCYaKGm\nr9hF2HrAy++/uwG4qGmAJHPRP6r/OuZj8fb8n9/2KV4SqhRdxu4MkP5THgA1azqpUr/4/Y01O/LI\nzDyBXq/nirbF5/51r50tW44DkHiph6q2ossdPnbq+9JEsVOhWvFjnVwmNVXPJQ2KX2bj7zns3Zu/\nXM3Gfixq0eV2H3LyXcFY3VNcxCUVXeZYzqnvy5VXVqJSreLXt3JbFna7HZvNxuVNi19m2548fv21\nIHtdL8mmosvtO+oqXF9bq5PEi4ou43Kd+tmsUSOeqlcWv76127M5erQge+vil/ltn52NBWPZqrkx\nxRdd7u+sU78zGgXySK5e/FhLtxzH7/eTnKxw6TXFLzP/+32Mtu8nJaVBsR8PpqDuIT/77LO0a9eO\nTp06AXDzzTczceJELr206F9xEOQ9ZICAj5SKFjIygzxuBEpJTjhtO3UH9mN94xUsaTNRAireRo2w\nPzESb6s2GqYsuUAggMfjIblifLHfT+OGdZQfcjPOW24lb8zzGiQMrn9/P6OS10NKopnMoyfA5wef\nD8Xvy39wis+HEgiAL//9U68XvH3y9YAf/CeX86EUvI7fj+Lzg98HAT9KwecWrqPw8wOF6zv1+YGC\nt/PHOfX5/1imYGzFH4BAwXp8/tPz+/LXqf/7MJ5mzTjx6YyoftBJTPzMApWrpJCdE9yH+4RlDzk1\nNZXMzMzC948ePUpKSvF7mSGhM4AhDvRn+DM8mvxrOwM1apP3+v9w3j8c24sTMM+fS/l+/fC07YB9\n5LP4GhV/yCZS6fRgMdqIS0ggzlX0kKpt5WrifOC+vi9x8RU0SBhcZ9rOaBOXkoBFH95f4uoZ3g6V\nlP+7mbhvv4UNm/B06hqGNWojVn5mjWYrEJ6f2aDe9tSqVSvS0/OP22/fvp3U1NQzHq4WoeGvXYec\nDz4la8kqPB06YvpuBUndriPxjlvQ7/hN63jBoaqYFy4gEJ+At2Xx58eE0MykSfmPTR03On8vW4jz\nFNRCbtSoEfXq1WPQoEE8//zzjBkzJpjDiwvga3ANJ2Z+RfbcBXgbN8W8YD5J7ZqT8NC96Pb+pXW8\nUtH/vgP9vr/wXNcJzEUvfBFCU1ddhevmWzHs+A3LzGlapxFlSNAnBnn88ceZMWMG06dPp27dusEe\nXlwgb8vWZH+7hBOfz8R/RT0sX06nQstriX9qOMqRI1rHKxHzom8BmQxERC7HiGdQ4+KwvjgB7Hat\n44gyQmbqigWKgqdLd7KWf0/Oux8QuLgqcR++T8WmV2N7fixKdpbWCS+IKX0Bql6Pp1OXcy8shAYC\nF1XGcf9D6P8+jPW9t7WOI8oIKeRYotPhvqk/x9dsIveVNwmUK4/1rdeo0PhqrG+8Anl5Wic8J+XI\nEYybN+Ft3hI1qexfzCWil/PBYQSSk4n77xsoGRlaxxFlgBRyLDIacd32fxzf8CN5YyeAQY9t4jgq\nNm2AZeq74HZrnfCMzEsWAXK4WkQ+NSER+/Cn0NnzsL06Ses4ogyQQo5lcXE4HxjK8Y0/YR8+ApxO\nEkY+SYWW12Ke8UX+/ZURxlRw/tjdtfhZqISIJK7b/g9fzVpYPv0I/Z5dWscREU4KWaAmJOIY8QzH\nN/6E494H0R09QuLD95PUrjmm+V8XOxWpJux2TN+txFf3CgKXBm8aOyFCxmjEPuo5FJ8P2/PPaZ1G\nRDgpZFFITU7GPv4Fjq/fivPW29Hv2U25u4ZQvkt7jCuWaV7Mpu9WorhceGTvWJQhnh434G3SDPO3\n8zD8sEHrOCKCSSGLIgIXVyXvtf+S9f0PuHrfhHHbVsoP7EO5m3pi2KjdL5RTh6vl/LEoQxSlcHrX\n+OdGaf6HrYhcUsjijPy1Lif3fx+TtWw17k5dMK1ZTVKPziQOGYj+1+1hDuPHvGQRgZTUMjcNqBC+\nps1w97gR48YNmL6dr3UcEaGkkMU5+eo3IGdaGtnzFuFt1gJz+kKSOrQk4b670P35R1gyGDZvQpeZ\nmb93rJMfW1H22EeNQdXrsT0/BrxereOICCS/2cR58zZvSfa8RZyYnoavXn0sc2ZRoVVj4h9/BN3h\nQyFdtzk9/3nIcv5YlFX+Wpfjuu3/MPyxB8tnH2sdR0QgKWRxYRQFT8cuZC/9jpz3P8Zf4xLiPv2Q\nCs0aYhs7CuX4sZCs1rToW9S4ODxt24dkfCHCwf740wRs8dheeQElL/ofXSgujBSyKBmdDnevm8ha\n/QO5r08mUKEi1ilvUaFJA6yvvhjUXzb6Pbsw7NqJp911EBcXtHGFCDc1JQXn0EfQZWYSN/kNreOI\nCCOFLErHYMB1y20cX7+VvPEvgMmI7cUJVGjagLj33gaXq9SrMKUXzM7VTQ5Xi7LPce+D+CtdhPWd\nyej+Pqx1HBFBpJBFcFgsOO99MH/WrxHPgNtD/LNPU6FFIyxffFqq58KaFn2Lqii4o/hh7yKG2Gw4\nRjyD4nRifWmi1mlEBJFCFkGlxifgGD6C4xu34XhwGLpjmSQ8+hBJbZpi/noOBAIXNmBmJsYf1uNr\n3BQ1NTU0oYUIM9egW/DVvQLLtM/Q7/hN6zgiQkghi5BQK1TEPmY8xzf8iPP2u9Dv/YvE/9xB+c7t\nMC1bfP6TIyxYgBIIyNzVIroYDNiffQ4lEMA2frTWaUSEkEIWIRWoXIW8l1/n+PcbcfUdgOGXnyh3\ncz/K9eqOYf26cw8wbx4g549F9PF06oqnVRvMS9Ixfv+d1nFEBJBCFmERqFmL3HemkrV8De5u12Na\nv5akG7uSOLgf+p9/Kv6TXC5YtAhfzVr4L68d3sBChJqiYB8zHgDbuGcv/HSOiDpSyCKs/PWuIufT\nGWR9uyR/72DpYip0bE3CPXcUeTydac13YLfnTwaiKBolFiJ0fA0b4bqpH8Yft2KeO1vrOEJjUshC\nE74mzTgx5xuyv5yLt+E1WObOIal1U+IfG4ru4AEATIsWAnK4WkQ3+9OjUY1GbBPHgdutdRyhISlk\noR1Fwdv+OrLTV3Liw8/x17qMuM8/oULza7A9+zSm9AVQoQLeJs20TipEyARqXILzznvQ79tL3Efv\nax1HaEgKWWhPUfD0vJGsVevJeesdAqmVsL73Nvq/D0PPnmAwaJ1QiJByPPYEgXLlsb72Ekp2ltZx\nhEakkEXk0OtxD7qF42s3k/vCy3ivbQJDh2qdSoiQU5Mq4Bg2HF12NtY3X9M6jtCIFLKIPGYzrrvu\nJXvhMmgszz4WscF59734q1Yjbuq76Pbv0zqO0IAUshBCRAKLBftTo1DcbmyTntc6jdCAFLIQQkQI\nd7+BeK+6GnPaTAw/b9M6jggzKWQhhIgUOh32MeNRVBXb2GfPf4pZERWkkIUQIoJ423XA06EjptUr\nMa5YpnUcEUZSyEIIEWHyRo9HVRTin3sW/H6t44gwkUIWQogI4693Fe6BgzH8th3zrBlaxxFhIoUs\nhBARyD7iGVSLBdsL48Hp1DqOCAMpZCGEiECBi6vivOcB9IcPEff+O1rHEWEghSyEEBHK8fCjBCpU\nwPrmayiZmVrHESEmhSyEEBFKTSyHY/gIdLk5WF9/Ses4IsSkkIUQIoI5b78Lf41LiPtoKro/9mgd\nR4SQFLIQQkQykwn7qLEoPl/+M5NF1JJCFkKICOe+sQ/eRtdimfcVhs0btY4jQkQKWQghIp2iYB+T\n/8AJ23MypWa0kkIWQogywNuiFe5u12NavxZT+kKt44gQkEIWQogywv7sOFS9Htv40eDzaR1HBJkU\nshBClBH+y2vjuuV2DLt2YvniU63jiCCTQhZCiDLE/sTTqFYbtpcmQl6e1nFEEJWokH0+HyNGjODm\nm29mwIABbNq0CYAdO3YwaNAgBg0axJgxY4IaVAghBKiVKuF4YCi6jKNYp7yldRwRRCUq5K+//pq4\nuDimT5/OhAkTmDRpEgATJkxg5MiRzJgxg7y8PFatWhXUsEIIIcDxwMMEUlKxTvkvuiN/ax1HBEmJ\nCvnGG2/k6aefBqBChQpkZ2fj8Xg4ePAgV199NQAdOnRg3bp1wUsqhBAiX3w89idHojjsWF+epHUa\nESQlKmSj0YjZbAbgk08+oWfPnmRlZZGYmFi4TMWKFcnIyAhOSiGEEKdx3XIbvstrY/niE/Q7f9c6\njggCw7kWmDVrFrNmzTrttaFDh9KmTRu++OILtm/fzrvvvsvx48dPW0Y9jxvXk5KsGAz6C4x8bikp\nCUEfMxLJdkYX2c7oEbZtfOVl6NWLCi+Nh6+/Ds86/yEWvpcQvu08ZyH379+f/v37F3l91qxZLF++\nnClTpmA0GgsPXZ905MgRUlNTzzp2VpajBJHPLiUlgYyM3KCPG2lkO6OLbGf0COs2Nm9PueYtMc2b\nR/a8RXhbtArPeomN7yWEZjvPVPAlOmS9f/9+ZsyYweTJkwsPXRuNRmrWrFl4xfXixYtp06ZNCeMK\nIYQ4J0XBPmY8ALbnRsmUmmXcOfeQizNr1iyys7O55557Cl/74IMPGDlyJKNHjyYQCNCgQQNatmwZ\ntKBCCCGK8l3bBNeNfbDM+wrzvK9w97pJ60iihBT1fE72hkgoDnfIYZToItsZXWJhO7XYRt2ff1Ch\ndRMCVS7m+JpNYDKFfJ2x8L2EMnDIWgghROQIXFoT5x13od/7F3GffKB1HFFCUshCCBEFHI8+SSAh\nEeurL6LknNA6jigBKWQhhIgCanIyjocfRXf8ONa3Xtc6jigBKWQhhIgSznsewF/lYuL+NwXdwQNa\nxxEXSApZCCGiRVwc9qdGobhc2F6coHUacYGkkIUQIoq4+w/Cd0U9zDOnof/lZ63jiAsghSyEENFE\nrydvzHgUVSV+/Git04gLIIUshBBRxtuhI562HTCtWIZx5XKt44jzJIUshBDRRlGwjxkHgG3caAgE\nNA4kzocUshBCRCFf/Qa4+g3E+MtPmNNmah1HnAcpZCGEiFL2p59FNZuxvTAeXC6t44hzkEIWQogo\nFahWHefd96E/eIC4qe9pHUecgxSyEEJEMcewxwiUL4/1jVdQjh/TOo44CylkIYSIYmr5JByPPoku\n5wTW11/ROo44CylkIYSIcs47/4O/eg3iPvwfur1/aR1HnIEUshBCRDuzGfvI0SheL7YXxmmdRpyB\nFLIQQsQAd+++eBtcg2VOGoYft2gdRxRDClkIIWKBTod9zHgAbGNHgapqHEj8mxSyEELECG/rtrg7\nd8W09ntMS9O1jiP+RQpZCCFiiH3Uc6g6Xf6Umj6f1nHEP0ghCyFEDPFfcSWum2/F8PsOLDO+0DqO\n+AcpZCGEiDGOEc+gxsVhfXEC2O1axxEFpJCFECLGBC6qjOP+h9Af+Rvre29rHUcUkEIWQogY5Hxw\nGIHkZOL++wbK0aNaxxFIIQshRExSExKxD38KnT0P26uTtI4jkEIWQoiY5brt//DVrIXl04/Q796l\ndZyYJ4UshBCxymjEPuo5FL8f2/NjtU4T86SQhRAihnl63IC3STPMC+Zj2LBe6zgxTQpZCCFimaKQ\nN+Z5AOKfkyk1tSSFLIQQMc7XtBnuHjdi3PQDpm/nax0nZkkhCyGEwD5qDKpej+35MeD1ah0nJkkh\nCyGEwF/rcly3/R+GP/Zg+fQjrePEJClkIYQQANgff5qALR7bq5NQcnO0jhNzpJCFEEIAoKak4Bz6\nCLrMTOImv6F1nJgjhSyEEKKQ494H8Ve6COu7b6M7fEjrODFFClkIIcQpNhuOEc+gOJ1YX5qodZqY\nIoUshBDiNK5Bt+CrewWW6Z+j/+1XrePEDClkIYQQpzMYsD/7HEoggG38aK3TxAwpZCGEEEV4OnXF\n06oN5qWLMa5epXWcmCCFLIQQoihFwT5mPAC2caMhENA4UPSTQhZCCFEsX8NGuG7qh3HbVsxfpWkd\nJ+pJIQshhDgj+9OjUWoq8gkAAAnrSURBVI1GbBPHgdutdZyoJoUshBDijAI1LsF55z3o9+8j7sP3\ntY4T1UpVyJmZmTRp0oQNGzYAsGPHDgYNGsSgQYMYM2ZMUAIKIYTQluOxJwiUK4/19ZdQsrO0jhO1\nSlXIL730EtWqVSt8f8KECYwcOZIZM2aQl5fHqlVyZZ4QQpR1alIFHMOGo8vOxvrGq1rHiVolLuR1\n69Zhs9moXbs2AB6Ph4MHD3L11VcD0KFDB9atWxeclEIIITTlvPte/FWrETf1XXT79modJyoZSvJJ\nHo+Ht99+mylTpjBxYv7UallZWSQmJhYuU7FiRTIyMs46TlKSFYNBX5IIZ5WSkhD0MSORbGd0ke2M\nHtG5jQkwcQLcdhsV33gRPvssSrezqHBt5zkLedasWcyaNeu019q2bUv//v1PK+B/U1X1nCvPynKc\nR8QLk5KSQEZGbtDHjTSyndFFtjN6RPU2drmR8lddjfHzz+HRR8modrnWiUIuFN/PMxX8OQu5f//+\n9O/f/7TXBg0aRCAQ4IsvvmDfvn389NNPvPbaa2RnZxcuc+TIEVJTU0sZWwghRMTQ6bCPGU/5/r3g\niSdg2hzQyc06wVKiQ9YzZswofPupp56iT58+1K1bl5o1a7Jp0yYaN27M4sWLGTJkSNCCCiGE0J63\nXQc8HTpiWr6M5MpJqAmJqImJqAkJqAmJBBJPvl8ONbHg/ZPLJCaiJpYj8M/34xNAH/xTl2VRiQr5\nTEaOHMno0aMJBAI0aNCAli1bBnN4IYQQESDvhZep8OJ4vIePoMvJQcnNQXfoEEruDpQSTLEZiE84\nVdDFlLqamEigoPDVxIKi/2epJySCIah1pglFPZ+TvSESivMsUX3+5v/bu9uQKPYFDODP6B7x7Kq1\nbbWuh+yF2xtEFKiwaVFCRuUXgy2TxSLoJltkkKGZheAnpQ+RSYXa5160Fz9kRaHU7epaasVCb3bh\nXl3NzDbX67odXfd+WDXj3MM5enb6T7PPD8Sd/TD/Z2DYZ/4zw8wU3E514XaqRyhsI/A72+n3Qxr6\nLyS3e/IvbHDgm2Vp0I0w98Dk58D/wfFiH//e55t2Hr9WN6XIx0t8vLy/Lsd8U+rfFHt0DPDTT39u\nO/+iGV9DJiIi+lMkCf6o6MBp6LhfZrYOvx/weBA2Udbj5f11+Wtxh00p+cDyAMI+9kH61ztIo6PT\nH/rnn3878/7bEkjHi+GPmTWz7ZkGFjIRESmHJAE6HcZ0OiDWNLN1+P3A8HCgxAcHJ0s9MDufUvSD\nvy11yT2AsM8uSP/5N6RffwX++Q+E7fk7fCxkIiKiaZIkQKvFmFYLGGNnvh6vF/MMOviGpn8KfSZ4\nvzoREdH/ExkJaLXfbTgWMhERkQKwkImIiBSAhUxERKQALGQiIiIFYCETEREpAAuZiIhIAVjIRERE\nCsBCJiIiUgAWMhERkQKwkImIiBSAhUxERKQAQt+HTERERAGcIRMRESkAC5mIiEgBWMhEREQKwEIm\nIiJSABYyERGRArCQiYiIFEAjOkAwvXnzBjabDXv37oXVahUdRxZlZWVobW3F6OgoDhw4gLS0NNGR\ngm54eBgFBQXo7+/Hly9fYLPZsGnTJtGxZOP1epGeng6bzYYdO3aIjhN0drsdubm5WLp0KQBg2bJl\nOHnypOBU8qirq0NVVRU0Gg0OHz6MjRs3io4UdNeuXUNdXd3kssPhQHt7u8BE8hgaGkJ+fj4GBgYw\nMjKCgwcPYv369bKOqZpC9ng8KCkpgdlsFh1FNs3NzXj79i2uXLkCl8uFjIwMVRZyQ0MDVq1ahf37\n98PpdGLfvn2qLuTz589j1qxZomPIKikpCWfPnhUdQ1YulwsVFRWora2Fx+NBeXm5KgvZYrHAYrEA\nAFpaWlBfXy84kTxu3LiBxYsX4+jRo+jt7cWePXtw584dWcdUTSFHRESgsrISlZWVoqPIJjExEatX\nrwYAxMTEYHh4GD6fD+Hh4YKTBde2bdsmP/f09MBoNApMI693796ho6NDlT/coaapqQlmsxlRUVGI\niopCSUmJ6Eiyq6iowOnTp0XHkIVer8fr168BAG63G3q9XvYxVXMNWaPRIDIyUnQMWYWHh0Or1QIA\nampqsGHDBtWV8VSZmZnIy8tDYWGh6CiyKS0tRUFBgegYsuvo6EBOTg52796Nx48fi44ji66uLni9\nXuTk5CArKwtNTU2iI8nqxYsXMJlMmDdvnugosti+fTu6u7uxefNmWK1W5Ofnyz6mambIoeT+/fuo\nqanBpUuXREeR1eXLl/Hy5UscO3YMdXV1kCRJdKSgunnzJtasWYMFCxaIjiKrRYsW4dChQ9i6dSs6\nOzuRnZ2Ne/fuISIiQnS0oPv8+TPOnTuH7u5uZGdno6GhQXX77YSamhpkZGSIjiGbW7duIS4uDtXV\n1Xj16hUKCwtx/fp1WcdkIf9gHj16hAsXLqCqqgrR0dGi48jC4XDAYDDAZDJh5cqV8Pl8+PTpEwwG\ng+hoQdXY2IjOzk40Njbi/fv3iIiIQGxsLNatWyc6WlAZjcbJyxDx8fGYO3cuent7VXcgYjAYsHbt\nWmg0GsTHx0On06lyv51gt9tRVFQkOoZs2trakJKSAgBYsWIFPnz4IPslQtWcsg4Fg4ODKCsrw8WL\nFzF79mzRcWTz9OnTydn/x48f4fF4vsv1m+/tzJkzqK2txdWrV2GxWGCz2VRXxkDgzuPq6moAQF9f\nH/r7+1V5X0BKSgqam5sxNjYGl8ul2v0WAHp7e6HT6VR5lmPCwoUL8fz5cwCA0+mETqeT/RKhambI\nDocDpaWlcDqd0Gg0uHv3LsrLy1VVXLdv34bL5cKRI0cmvystLUVcXJzAVMGXmZmJEydOICsrC16v\nF6dOnUJYGI8df1SpqanIy8vDgwcPMDIyguLiYlX+kBuNRmzZsgU7d+4EABQVFal2v+3r68OcOXNE\nx5DVrl27UFhYCKvVitHRURQXF8s+Jl+/SEREpADqPHwjIiL6wbCQiYiIFICFTEREpAAsZCIiIgVg\nIRMRESkAC5mIiEgBWMhEREQKwEImCiGpqalwu90AgNzcXBw/fhxA4EEP6enpIqMRhTwWMlEIMZvN\naG1thd/vR39/Pzo7OwEEnks88dxeIhJDNY/OJKI/lpycjCdPnsBkMmHJkiVwu93o6emB3W5HWlqa\n6HhEIY0zZKIQYjab0dbWBrvdjsTERCQkJKClpQXPnj1DYmKi6HhEIY2FTBRC9Ho9/H4/Hj58iKSk\nJCQkJKC+vh7z589HZGSk6HhEIY2FTBRikpKS0NXVBaPRiOXLl6O9vR3JycmiYxGFPL7tiYiISAE4\nQyYiIlIAFjIREZECsJCJiIgUgIVMRESkACxkIiIiBWAhExERKQALmYiISAFYyERERArwP5/4OPns\n2fSMAAAAAElFTkSuQmCC\n","text/plain":["<Figure size 576x396 with 1 Axes>"]},"metadata":{"tags":[]}}]},{"metadata":{"id":"vZoRizNfOIQI","colab_type":"text"},"cell_type":"markdown","source":["#### 选取最佳的正则化参数取值"]},{"metadata":{"id":"cLw4M7CFVWOo","colab_type":"code","colab":{}},"cell_type":"code","source":["from sklearn.linear_model import LassoCV"],"execution_count":0,"outputs":[]},{"metadata":{"id":"hXUp-pcdP4Rz","colab_type":"code","colab":{}},"cell_type":"code","source":["\n","#自己建立Lasso进行alpha选择的范围\n","alpharange = np.logspace(-10, -2, 200,base=10)\n","\n","#其实是形成10为底的指数函数\n","#10**(-10)到10**(-2)次方"],"execution_count":0,"outputs":[]},{"metadata":{"id":"wl5O-7tzRHzY","colab_type":"code","outputId":"52456de4-4c7f-4808-d072-3c36126d56cd","executionInfo":{"status":"ok","timestamp":1551611771333,"user_tz":-480,"elapsed":2361,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":34}},"cell_type":"code","source":["\n","alpharange.shape"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/plain":["(200,)"]},"metadata":{"tags":[]},"execution_count":83}]},{"metadata":{"id":"0bQKZXE3RJvH","colab_type":"code","outputId":"89de9845-7a22-4795-9799-ca0259c762df","executionInfo":{"status":"ok","timestamp":1551611781373,"user_tz":-480,"elapsed":1946,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":221}},"cell_type":"code","source":["\n","Xtrain.head()"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/html":["<div>\n","<style scoped>\n","    .dataframe tbody tr th:only-of-type {\n","        vertical-align: middle;\n","    }\n","\n","    .dataframe tbody tr th {\n","        vertical-align: top;\n","    }\n","\n","    .dataframe thead th {\n","        text-align: right;\n","    }\n","</style>\n","<table border=\"1\" class=\"dataframe\">\n","  <thead>\n","    <tr style=\"text-align: right;\">\n","      <th></th>\n","      <th>住户收入中位数</th>\n","      <th>房屋使用年代中位数</th>\n","      <th>平均房间数目</th>\n","      <th>平均卧室数目</th>\n","      <th>街区人口</th>\n","      <th>平均入住率</th>\n","      <th>街区的纬度</th>\n","      <th>街区的经度</th>\n","    </tr>\n","  </thead>\n","  <tbody>\n","    <tr>\n","      <th>0</th>\n","      <td>4.1776</td>\n","      <td>35.0</td>\n","      <td>4.425172</td>\n","      <td>1.030683</td>\n","      <td>5380.0</td>\n","      <td>3.368817</td>\n","      <td>37.48</td>\n","      <td>-122.19</td>\n","    </tr>\n","    <tr>\n","      <th>1</th>\n","      <td>5.3261</td>\n","      <td>38.0</td>\n","      <td>6.267516</td>\n","      <td>1.089172</td>\n","      <td>429.0</td>\n","      <td>2.732484</td>\n","      <td>37.53</td>\n","      <td>-122.30</td>\n","    </tr>\n","    <tr>\n","      <th>2</th>\n","      <td>1.9439</td>\n","      <td>26.0</td>\n","      <td>5.768977</td>\n","      <td>1.141914</td>\n","      <td>891.0</td>\n","      <td>2.940594</td>\n","      <td>36.02</td>\n","      <td>-119.08</td>\n","    </tr>\n","    <tr>\n","      <th>3</th>\n","      <td>2.5000</td>\n","      <td>22.0</td>\n","      <td>4.916000</td>\n","      <td>1.012000</td>\n","      <td>733.0</td>\n","      <td>2.932000</td>\n","      <td>38.57</td>\n","      <td>-121.31</td>\n","    </tr>\n","    <tr>\n","      <th>4</th>\n","      <td>3.8250</td>\n","      <td>34.0</td>\n","      <td>5.036765</td>\n","      <td>1.098039</td>\n","      <td>1134.0</td>\n","      <td>2.779412</td>\n","      <td>33.91</td>\n","      <td>-118.35</td>\n","    </tr>\n","  </tbody>\n","</table>\n","</div>"],"text/plain":["   住户收入中位数  房屋使用年代中位数    平均房间数目    平均卧室数目    街区人口     平均入住率  街区的纬度   街区的经度\n","0   4.1776       35.0  4.425172  1.030683  5380.0  3.368817  37.48 -122.19\n","1   5.3261       38.0  6.267516  1.089172   429.0  2.732484  37.53 -122.30\n","2   1.9439       26.0  5.768977  1.141914   891.0  2.940594  36.02 -119.08\n","3   2.5000       22.0  4.916000  1.012000   733.0  2.932000  38.57 -121.31\n","4   3.8250       34.0  5.036765  1.098039  1134.0  2.779412  33.91 -118.35"]},"metadata":{"tags":[]},"execution_count":84}]},{"metadata":{"id":"J2JwfwH0RMr7","colab_type":"code","colab":{}},"cell_type":"code","source":["\n","lasso_ = LassoCV(alphas=alpharange #自行输入的alpha的取值范围\n","                ,cv=5 #交叉验证的折数\n","                ).fit(Xtrain, Ytrain)\n"],"execution_count":0,"outputs":[]},{"metadata":{"id":"rJ1A4gINROxi","colab_type":"code","outputId":"57e73d72-2d77-4734-8ae8-90629ad63874","executionInfo":{"status":"ok","timestamp":1551611800832,"user_tz":-480,"elapsed":851,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":34}},"cell_type":"code","source":["\n","#查看被选择出来的最佳正则化系数\n","lasso_.alpha_"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/plain":["0.0020729217795953697"]},"metadata":{"tags":[]},"execution_count":86}]},{"metadata":{"id":"HpoexGtkRRQ4","colab_type":"code","outputId":"3e63300e-16e0-4736-8821-4b207e6c7821","executionInfo":{"status":"ok","timestamp":1551611810280,"user_tz":-480,"elapsed":1174,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":3417}},"cell_type":"code","source":["\n","#调用所有交叉验证的结果\n","lasso_.mse_path_"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/plain":["array([[0.52454913, 0.49856261, 0.55984312, 0.50526576, 0.55262557],\n","       [0.52361933, 0.49748809, 0.55887637, 0.50429373, 0.55283734],\n","       [0.52281927, 0.49655113, 0.55803797, 0.5034594 , 0.55320522],\n","       [0.52213811, 0.49574741, 0.55731858, 0.50274517, 0.55367515],\n","       [0.52155715, 0.49505688, 0.55669995, 0.50213252, 0.55421553],\n","       [0.52106069, 0.49446226, 0.55616707, 0.50160604, 0.55480104],\n","       [0.5206358 , 0.49394903, 0.55570702, 0.50115266, 0.55541214],\n","       [0.52027135, 0.49350539, 0.55530895, 0.50076146, 0.55603333],\n","       [0.51995825, 0.49312085, 0.5549639 , 0.50042318, 0.55665306],\n","       [0.5196886 , 0.49278705, 0.55466406, 0.50013007, 0.55726225],\n","       [0.51945602, 0.49249647, 0.55440306, 0.49987554, 0.55785451],\n","       [0.51925489, 0.49224316, 0.55417527, 0.49965404, 0.55842496],\n","       [0.51908068, 0.49202169, 0.55397615, 0.49946088, 0.55897049],\n","       [0.51892938, 0.49182782, 0.55380162, 0.49929206, 0.55948886],\n","       [0.51879778, 0.49165759, 0.55364841, 0.49914421, 0.55997905],\n","       [0.51868299, 0.49150788, 0.55351357, 0.49901446, 0.5604405 ],\n","       [0.51858268, 0.49137604, 0.55339469, 0.49890035, 0.56087323],\n","       [0.51849488, 0.49125956, 0.55328972, 0.4987998 , 0.56127784],\n","       [0.5184178 , 0.49115652, 0.55319678, 0.49871101, 0.56165507],\n","       [0.51835002, 0.49106526, 0.55311438, 0.49863248, 0.5620059 ],\n","       [0.51829033, 0.49098418, 0.55304118, 0.49856287, 0.56233145],\n","       [0.51823761, 0.49091208, 0.55297609, 0.49850108, 0.56263308],\n","       [0.51819098, 0.49084785, 0.55291806, 0.49844612, 0.56291204],\n","       [0.51814966, 0.49079058, 0.55286626, 0.49839716, 0.56316966],\n","       [0.51811298, 0.49073937, 0.55281996, 0.49835348, 0.56340721],\n","       [0.51808038, 0.49069355, 0.55277854, 0.49831445, 0.5636261 ],\n","       [0.51805132, 0.49065249, 0.5527414 , 0.49827953, 0.56382754],\n","       [0.5180254 , 0.49061566, 0.55270806, 0.49824828, 0.56401276],\n","       [0.51800224, 0.49058258, 0.55267812, 0.49822015, 0.56418292],\n","       [0.51798152, 0.49055285, 0.55265118, 0.49819493, 0.56433912],\n","       [0.51796296, 0.49052608, 0.55262693, 0.49817225, 0.56448243],\n","       [0.5179463 , 0.49050195, 0.55260507, 0.49815185, 0.56461379],\n","       [0.51793135, 0.49048019, 0.55258536, 0.49813345, 0.5647342 ],\n","       [0.51791791, 0.49046055, 0.55256757, 0.49811687, 0.56484448],\n","       [0.5179058 , 0.49044281, 0.55255149, 0.4981019 , 0.56494544],\n","       [0.5178949 , 0.49042677, 0.55253695, 0.49808838, 0.56503784],\n","       [0.51788506, 0.49041226, 0.55252379, 0.49807615, 0.56512236],\n","       [0.51787619, 0.49039913, 0.55251189, 0.4980651 , 0.56519967],\n","       [0.51786817, 0.49038724, 0.5525011 , 0.49805509, 0.56527034],\n","       [0.51786092, 0.49037646, 0.55249132, 0.49804603, 0.56533494],\n","       [0.51785437, 0.49036669, 0.55248246, 0.49803782, 0.56539397],\n","       [0.51784843, 0.49035783, 0.55247442, 0.49803037, 0.5654479 ],\n","       [0.51784306, 0.49034979, 0.55246712, 0.49802362, 0.56549716],\n","       [0.51783819, 0.49034249, 0.5524605 , 0.49801749, 0.56554215],\n","       [0.51783377, 0.49033586, 0.55245448, 0.49801193, 0.56558322],\n","       [0.51782977, 0.49032984, 0.55244901, 0.49800688, 0.56562073],\n","       [0.51782614, 0.49032437, 0.55244405, 0.49800229, 0.56565496],\n","       [0.51782284, 0.49031939, 0.55243953, 0.49799812, 0.56568621],\n","       [0.51781984, 0.49031487, 0.55243543, 0.49799434, 0.56571472],\n","       [0.51781712, 0.49031076, 0.55243169, 0.49799089, 0.56574074],\n","       [0.51781465, 0.49030702, 0.5524283 , 0.49798776, 0.56576449],\n","       [0.5178124 , 0.49030362, 0.55242521, 0.49798491, 0.56578615],\n","       [0.51781036, 0.49030052, 0.5524224 , 0.49798232, 0.56580591],\n","       [0.5178085 , 0.4902977 , 0.55241984, 0.49797996, 0.56582394],\n","       [0.51780681, 0.49029514, 0.55241751, 0.49797781, 0.56584039],\n","       [0.51780528, 0.4902928 , 0.55241539, 0.49797586, 0.56585539],\n","       [0.51780388, 0.49029068, 0.55241346, 0.49797408, 0.56586907],\n","       [0.51780261, 0.49028874, 0.55241171, 0.49797246, 0.56588155],\n","       [0.51780145, 0.49028698, 0.55241011, 0.49797099, 0.56589293],\n","       [0.51780039, 0.49028538, 0.55240865, 0.49796965, 0.56590331],\n","       [0.51779943, 0.49028392, 0.55240732, 0.49796843, 0.56591277],\n","       [0.51779856, 0.49028258, 0.55240611, 0.49796731, 0.5659214 ],\n","       [0.51779777, 0.49028137, 0.55240501, 0.4979663 , 0.56592927],\n","       [0.51779704, 0.49028027, 0.55240401, 0.49796538, 0.56593645],\n","       [0.51779638, 0.49027926, 0.5524031 , 0.49796454, 0.56594299],\n","       [0.51779578, 0.49027834, 0.55240226, 0.49796377, 0.56594896],\n","       [0.51779523, 0.49027751, 0.55240151, 0.49796307, 0.5659544 ],\n","       [0.51779473, 0.49027675, 0.55240081, 0.49796243, 0.56595936],\n","       [0.51779428, 0.49027605, 0.55240018, 0.49796185, 0.56596388],\n","       [0.51779386, 0.49027542, 0.55239961, 0.49796133, 0.565968  ],\n","       [0.51779349, 0.49027485, 0.55239909, 0.49796085, 0.56597176],\n","       [0.51779314, 0.49027432, 0.55239861, 0.49796041, 0.56597519],\n","       [0.51779283, 0.49027384, 0.55239818, 0.49796001, 0.56597831],\n","       [0.51779254, 0.49027341, 0.55239778, 0.49795964, 0.56598116],\n","       [0.51779228, 0.49027301, 0.55239742, 0.49795931, 0.56598376],\n","       [0.51779205, 0.49027265, 0.55239709, 0.49795901, 0.56598613],\n","       [0.51779183, 0.49027232, 0.55239679, 0.49795873, 0.56598828],\n","       [0.51779163, 0.49027202, 0.55239652, 0.49795848, 0.56599025],\n","       [0.51779146, 0.49027174, 0.55239627, 0.49795825, 0.56599205],\n","       [0.51779129, 0.49027149, 0.55239604, 0.49795804, 0.56599368],\n","       [0.51779114, 0.49027127, 0.55239584, 0.49795785, 0.56599517],\n","       [0.51779101, 0.49027106, 0.55239565, 0.49795768, 0.56599653],\n","       [0.51779088, 0.49027087, 0.55239548, 0.49795752, 0.56599777],\n","       [0.51779077, 0.4902707 , 0.55239532, 0.49795738, 0.5659989 ],\n","       [0.51779067, 0.49027054, 0.55239518, 0.49795725, 0.56599993],\n","       [0.51779057, 0.4902704 , 0.55239505, 0.49795713, 0.56600087],\n","       [0.51779049, 0.49027027, 0.55239493, 0.49795702, 0.56600172],\n","       [0.51779041, 0.49027015, 0.55239482, 0.49795692, 0.5660025 ],\n","       [0.51779034, 0.49027004, 0.55239472, 0.49795683, 0.56600322],\n","       [0.51779027, 0.49026994, 0.55239463, 0.49795675, 0.56600386],\n","       [0.51779022, 0.49026985, 0.55239455, 0.49795667, 0.56600446],\n","       [0.51779016, 0.49026977, 0.55239448, 0.4979566 , 0.56600499],\n","       [0.51779011, 0.49026969, 0.55239441, 0.49795654, 0.56600549],\n","       [0.51779007, 0.49026962, 0.55239435, 0.49795648, 0.56600593],\n","       [0.51779003, 0.49026956, 0.55239429, 0.49795643, 0.56600634],\n","       [0.51778999, 0.49026951, 0.55239424, 0.49795638, 0.56600671],\n","       [0.51778996, 0.49026945, 0.55239419, 0.49795634, 0.56600705],\n","       [0.51778993, 0.49026941, 0.55239415, 0.4979563 , 0.56600736],\n","       [0.5177899 , 0.49026936, 0.55239411, 0.49795626, 0.56600764],\n","       [0.51778987, 0.49026932, 0.55239407, 0.49795623, 0.5660079 ],\n","       [0.51778985, 0.49026929, 0.55239404, 0.4979562 , 0.56600813],\n","       [0.51778983, 0.49026926, 0.55239401, 0.49795617, 0.56600835],\n","       [0.51778981, 0.49026923, 0.55239398, 0.49795615, 0.56600854],\n","       [0.51778979, 0.4902692 , 0.55239396, 0.49795613, 0.56600872],\n","       [0.51778977, 0.49026918, 0.55239394, 0.49795611, 0.56600888],\n","       [0.51778976, 0.49026915, 0.55239392, 0.49795609, 0.56600903],\n","       [0.51778975, 0.49026913, 0.5523939 , 0.49795607, 0.56600916],\n","       [0.51778973, 0.49026911, 0.55239388, 0.49795605, 0.56600929],\n","       [0.51778972, 0.4902691 , 0.55239387, 0.49795604, 0.5660094 ],\n","       [0.51778971, 0.49026908, 0.55239385, 0.49795603, 0.5660095 ],\n","       [0.5177897 , 0.49026907, 0.55239384, 0.49795602, 0.56600959],\n","       [0.5177897 , 0.49026905, 0.55239383, 0.49795601, 0.56600968],\n","       [0.51778969, 0.49026904, 0.55239382, 0.497956  , 0.56600975],\n","       [0.51778968, 0.49026903, 0.55239381, 0.49795599, 0.56600983],\n","       [0.51778967, 0.49026902, 0.5523938 , 0.49795598, 0.56600989],\n","       [0.51778967, 0.49026901, 0.55239379, 0.49795597, 0.56600995],\n","       [0.51778966, 0.490269  , 0.55239378, 0.49795596, 0.56601   ],\n","       [0.51778966, 0.490269  , 0.55239378, 0.49795596, 0.56601005],\n","       [0.51778965, 0.49026899, 0.55239377, 0.49795595, 0.56601009],\n","       [0.51778965, 0.49026898, 0.55239376, 0.49795595, 0.56601013],\n","       [0.51778965, 0.49026898, 0.55239376, 0.49795594, 0.56601017],\n","       [0.51778964, 0.49026897, 0.55239375, 0.49795594, 0.5660102 ],\n","       [0.51778964, 0.49026897, 0.55239375, 0.49795593, 0.56601023],\n","       [0.51778964, 0.49026896, 0.55239375, 0.49795593, 0.56601026],\n","       [0.51778963, 0.49026896, 0.55239374, 0.49795593, 0.56601029],\n","       [0.51778963, 0.49026896, 0.55239374, 0.49795592, 0.56601031],\n","       [0.51778963, 0.49026895, 0.55239374, 0.49795592, 0.56601033],\n","       [0.51778963, 0.49026895, 0.55239373, 0.49795592, 0.56601035],\n","       [0.51778963, 0.49026895, 0.55239373, 0.49795592, 0.56601037],\n","       [0.51778962, 0.49026895, 0.55239373, 0.49795591, 0.56601039],\n","       [0.51778962, 0.49026894, 0.55239373, 0.49795591, 0.5660104 ],\n","       [0.51778962, 0.49026894, 0.55239372, 0.49795591, 0.56601041],\n","       [0.51778962, 0.49026894, 0.55239372, 0.49795591, 0.56601043],\n","       [0.51778962, 0.49026894, 0.55239372, 0.49795591, 0.56601044],\n","       [0.51778962, 0.49026894, 0.55239372, 0.49795591, 0.56601045],\n","       [0.51778962, 0.49026894, 0.55239372, 0.49795591, 0.56601046],\n","       [0.51778962, 0.49026893, 0.55239372, 0.4979559 , 0.56601046],\n","       [0.51778962, 0.49026893, 0.55239372, 0.4979559 , 0.56601047],\n","       [0.51778962, 0.49026893, 0.55239372, 0.4979559 , 0.56601048],\n","       [0.51778961, 0.49026893, 0.55239371, 0.4979559 , 0.56601048],\n","       [0.51778961, 0.49026893, 0.55239371, 0.4979559 , 0.56601049],\n","       [0.51778961, 0.49026893, 0.55239371, 0.4979559 , 0.5660105 ],\n","       [0.51778961, 0.49026893, 0.55239371, 0.4979559 , 0.5660105 ],\n","       [0.51778961, 0.49026893, 0.55239371, 0.4979559 , 0.5660105 ],\n","       [0.51778961, 0.49026893, 0.55239371, 0.4979559 , 0.56601051],\n","       [0.51778961, 0.49026893, 0.55239371, 0.4979559 , 0.56601051],\n","       [0.51778961, 0.49026893, 0.55239371, 0.4979559 , 0.56601052],\n","       [0.51778961, 0.49026893, 0.55239371, 0.4979559 , 0.56601052],\n","       [0.51778961, 0.49026893, 0.55239371, 0.4979559 , 0.56601052],\n","       [0.51778961, 0.49026892, 0.55239371, 0.4979559 , 0.56601052],\n","       [0.51778961, 0.49026892, 0.55239371, 0.4979559 , 0.56601053],\n","       [0.51778961, 0.49026892, 0.55239371, 0.4979559 , 0.56601053],\n","       [0.51778961, 0.49026892, 0.55239371, 0.4979559 , 0.56601053],\n","       [0.51778961, 0.49026892, 0.55239371, 0.4979559 , 0.56601053],\n","       [0.51778961, 0.49026892, 0.55239371, 0.4979559 , 0.56601053],\n","       [0.51778961, 0.49026892, 0.55239371, 0.4979559 , 0.56601054],\n","       [0.51778961, 0.49026892, 0.55239371, 0.4979559 , 0.56601054],\n","       [0.51778961, 0.49026892, 0.55239371, 0.4979559 , 0.56601054],\n","       [0.51778961, 0.49026892, 0.55239371, 0.4979559 , 0.56601054],\n","       [0.51778961, 0.49026892, 0.55239371, 0.4979559 , 0.56601054],\n","       [0.51778961, 0.49026892, 0.55239371, 0.4979559 , 0.56601054],\n","       [0.51778961, 0.49026892, 0.55239371, 0.4979559 , 0.56601054],\n","       [0.51778961, 0.49026892, 0.55239371, 0.49795589, 0.56601054],\n","       [0.51778961, 0.49026892, 0.55239371, 0.49795589, 0.56601054],\n","       [0.51778961, 0.49026892, 0.55239371, 0.49795589, 0.56601054],\n","       [0.51778961, 0.49026892, 0.55239371, 0.49795589, 0.56601054],\n","       [0.51778961, 0.49026892, 0.55239371, 0.49795589, 0.56601054],\n","       [0.51778961, 0.49026892, 0.55239371, 0.49795589, 0.56601055],\n","       [0.51778961, 0.49026892, 0.55239371, 0.49795589, 0.56601055],\n","       [0.51778961, 0.49026892, 0.55239371, 0.49795589, 0.56601055],\n","       [0.51778961, 0.49026892, 0.55239371, 0.49795589, 0.56601055],\n","       [0.51778961, 0.49026892, 0.55239371, 0.49795589, 0.56601055],\n","       [0.51778961, 0.49026892, 0.55239371, 0.49795589, 0.56601055],\n","       [0.51778961, 0.49026892, 0.55239371, 0.49795589, 0.56601055],\n","       [0.51778961, 0.49026892, 0.55239371, 0.49795589, 0.56601055],\n","       [0.51778961, 0.49026892, 0.55239371, 0.49795589, 0.56601055],\n","       [0.51778961, 0.49026892, 0.55239371, 0.49795589, 0.56601055],\n","       [0.51778961, 0.49026892, 0.55239371, 0.49795589, 0.56601055],\n","       [0.51778961, 0.49026892, 0.55239371, 0.49795589, 0.56601055],\n","       [0.51778961, 0.49026892, 0.55239371, 0.49795589, 0.56601055],\n","       [0.51778961, 0.49026892, 0.55239371, 0.49795589, 0.56601055],\n","       [0.51778961, 0.49026892, 0.55239371, 0.49795589, 0.56601055],\n","       [0.51778961, 0.49026892, 0.55239371, 0.49795589, 0.56601055],\n","       [0.51778961, 0.49026892, 0.55239371, 0.49795589, 0.56601055],\n","       [0.51778961, 0.49026892, 0.55239371, 0.49795589, 0.56601055],\n","       [0.51778961, 0.49026892, 0.55239371, 0.49795589, 0.56601055],\n","       [0.51778961, 0.49026892, 0.55239371, 0.49795589, 0.56601055],\n","       [0.51778961, 0.49026892, 0.55239371, 0.49795589, 0.56601055],\n","       [0.51778961, 0.49026892, 0.55239371, 0.49795589, 0.56601055],\n","       [0.51778961, 0.49026892, 0.55239371, 0.49795589, 0.56601055],\n","       [0.51778961, 0.49026892, 0.55239371, 0.49795589, 0.56601055],\n","       [0.51778961, 0.49026892, 0.55239371, 0.49795589, 0.56601055],\n","       [0.51778961, 0.49026892, 0.55239371, 0.49795589, 0.56601055],\n","       [0.51778961, 0.49026892, 0.55239371, 0.49795589, 0.56601055],\n","       [0.51778961, 0.49026892, 0.55239371, 0.49795589, 0.56601055],\n","       [0.51778961, 0.49026892, 0.55239371, 0.49795589, 0.56601055],\n","       [0.51778961, 0.49026892, 0.55239371, 0.49795589, 0.56601055],\n","       [0.51778961, 0.49026892, 0.55239371, 0.49795589, 0.56601055],\n","       [0.51778961, 0.49026892, 0.55239371, 0.49795589, 0.56601055],\n","       [0.51778961, 0.49026892, 0.55239371, 0.49795589, 0.56601055]])"]},"metadata":{"tags":[]},"execution_count":87}]},{"metadata":{"id":"iE9UZZxtRToz","colab_type":"code","outputId":"8f7443c2-c4c2-4d0d-d22f-ac04a30b4214","executionInfo":{"status":"ok","timestamp":1551611818887,"user_tz":-480,"elapsed":1290,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":34}},"cell_type":"code","source":["\n","lasso_.mse_path_.shape #返回每个alpha下的五折交叉验证结果"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/plain":["(200, 5)"]},"metadata":{"tags":[]},"execution_count":88}]},{"metadata":{"id":"YCajL2biRV5p","colab_type":"code","outputId":"ca8305be-2ccb-45c9-9fbf-76b2f85ca586","executionInfo":{"status":"ok","timestamp":1551611828594,"user_tz":-480,"elapsed":1290,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":697}},"cell_type":"code","source":["\n","lasso_.mse_path_.mean(axis=1) #有注意到在岭回归中我们的轴向是axis=0吗？\n","\n","#在岭回归当中，我们是留一验证，因此我们的交叉验证结果返回的是，每一个样本在每个alpha下的交叉验证结果\n","#因此我们要求每个alpha下的交叉验证均值，就是axis=0，跨行求均值\n","#而在这里，我们返回的是，每一个alpha取值下，每一折交叉验证的结果\n","#因此我们要求每个alpha下的交叉验证均值，就是axis=1，跨列求均值"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/plain":["array([0.52816924, 0.52742297, 0.5268146 , 0.52632488, 0.52593241,\n","       0.52561942, 0.52537133, 0.5251761 , 0.52502385, 0.52490641,\n","       0.52481712, 0.52475046, 0.52470198, 0.52466795, 0.52464541,\n","       0.52463188, 0.5246254 , 0.52462436, 0.52462744, 0.52463361,\n","       0.52464201, 0.52465199, 0.52466301, 0.52467466, 0.5246866 ,\n","       0.5246986 , 0.52471046, 0.52472203, 0.5247332 , 0.52474392,\n","       0.52475413, 0.52476379, 0.52477291, 0.52478147, 0.52478949,\n","       0.52479697, 0.52480393, 0.52481039, 0.52481639, 0.52482193,\n","       0.52482706, 0.52483179, 0.52483615, 0.52484016, 0.52484385,\n","       0.52484725, 0.52485036, 0.52485322, 0.52485584, 0.52485824,\n","       0.52486044, 0.52486246, 0.5248643 , 0.52486599, 0.52486753,\n","       0.52486895, 0.52487024, 0.52487141, 0.52487249, 0.52487348,\n","       0.52487437, 0.52487519, 0.52487594, 0.52487663, 0.52487725,\n","       0.52487782, 0.52487834, 0.52487882, 0.52487925, 0.52487965,\n","       0.52488001, 0.52488033, 0.52488063, 0.52488091, 0.52488116,\n","       0.52488138, 0.52488159, 0.52488178, 0.52488195, 0.52488211,\n","       0.52488225, 0.52488239, 0.5248825 , 0.52488261, 0.52488271,\n","       0.5248828 , 0.52488289, 0.52488296, 0.52488303, 0.52488309,\n","       0.52488315, 0.5248832 , 0.52488325, 0.52488329, 0.52488333,\n","       0.52488337, 0.5248834 , 0.52488343, 0.52488346, 0.52488348,\n","       0.5248835 , 0.52488352, 0.52488354, 0.52488356, 0.52488357,\n","       0.52488359, 0.5248836 , 0.52488361, 0.52488362, 0.52488363,\n","       0.52488364, 0.52488365, 0.52488366, 0.52488367, 0.52488367,\n","       0.52488368, 0.52488368, 0.52488369, 0.52488369, 0.5248837 ,\n","       0.5248837 , 0.5248837 , 0.52488371, 0.52488371, 0.52488371,\n","       0.52488371, 0.52488371, 0.52488372, 0.52488372, 0.52488372,\n","       0.52488372, 0.52488372, 0.52488372, 0.52488372, 0.52488373,\n","       0.52488373, 0.52488373, 0.52488373, 0.52488373, 0.52488373,\n","       0.52488373, 0.52488373, 0.52488373, 0.52488373, 0.52488373,\n","       0.52488373, 0.52488373, 0.52488373, 0.52488373, 0.52488373,\n","       0.52488373, 0.52488373, 0.52488373, 0.52488373, 0.52488373,\n","       0.52488373, 0.52488373, 0.52488373, 0.52488373, 0.52488373,\n","       0.52488373, 0.52488373, 0.52488374, 0.52488374, 0.52488374,\n","       0.52488374, 0.52488374, 0.52488374, 0.52488374, 0.52488374,\n","       0.52488374, 0.52488374, 0.52488374, 0.52488374, 0.52488374,\n","       0.52488374, 0.52488374, 0.52488374, 0.52488374, 0.52488374,\n","       0.52488374, 0.52488374, 0.52488374, 0.52488374, 0.52488374,\n","       0.52488374, 0.52488374, 0.52488374, 0.52488374, 0.52488374,\n","       0.52488374, 0.52488374, 0.52488374, 0.52488374, 0.52488374,\n","       0.52488374, 0.52488374, 0.52488374, 0.52488374, 0.52488374])"]},"metadata":{"tags":[]},"execution_count":89}]},{"metadata":{"id":"B3jpmoS5RYbF","colab_type":"code","outputId":"9cf3f8e3-eed2-4188-ce6e-84a88ce376df","executionInfo":{"status":"ok","timestamp":1551611842239,"user_tz":-480,"elapsed":770,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":51}},"cell_type":"code","source":["\n","#最佳正则化系数下获得的模型的系数结果\n","lasso_.coef_"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/plain":["array([ 4.29867301e-01,  1.03623683e-02, -9.32648616e-02,  5.51755252e-01,\n","        1.14732262e-06, -3.31941716e-03, -4.10451223e-01, -4.22410330e-01])"]},"metadata":{"tags":[]},"execution_count":90}]},{"metadata":{"id":"1jndvk0JRbta","colab_type":"code","outputId":"eb4a713e-cc3d-4ab6-f1f4-ec2d2abe0019","executionInfo":{"status":"ok","timestamp":1551611850222,"user_tz":-480,"elapsed":837,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":34}},"cell_type":"code","source":["\n","lasso_.score(Xtest,Ytest)"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/plain":["0.6038982670571436"]},"metadata":{"tags":[]},"execution_count":91}]},{"metadata":{"id":"JYXaQZ6CRd3h","colab_type":"code","outputId":"7d1689c4-7f97-4729-f45a-9ef818acde6c","executionInfo":{"status":"ok","timestamp":1551611858772,"user_tz":-480,"elapsed":993,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":34}},"cell_type":"code","source":["\n","#与线性回归相比如何？\n","reg = LinearRegression().fit(Xtrain,Ytrain)\n","reg.score(Xtest,Ytest)"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/plain":["0.6043668160178817"]},"metadata":{"tags":[]},"execution_count":92}]},{"metadata":{"id":"4QNqUE6VRftW","colab_type":"code","outputId":"13c3d707-9ca5-4d60-d474-dace838eb609","executionInfo":{"status":"ok","timestamp":1551611880076,"user_tz":-480,"elapsed":998,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":34}},"cell_type":"code","source":["\n","#使用lassoCV自带的正则化路径长度和路径中的alpha个数来自动建立alpha选择的范围\n","ls_ = LassoCV(eps=0.00001\n","              ,n_alphas=300\n","              ,cv=5\n","                ).fit(Xtrain, Ytrain)\n","\n","ls_.alpha_\n","# 调用交叉验证选出来的最佳正则化参数"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/plain":["0.0020954551690628535"]},"metadata":{"tags":[]},"execution_count":93}]},{"metadata":{"id":"MZ_QcvDnRihe","colab_type":"code","outputId":"882eee23-92db-48b0-dd64-0c06647a4b3c","executionInfo":{"status":"ok","timestamp":1551612221591,"user_tz":-480,"elapsed":761,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":1292}},"cell_type":"code","source":["\n","ls_.alphas_ #查看所有自动生成的alpha取值\n","# 使用正则化路径的长度和路径中 的个数来自动生成的，用来进行交叉验证的正则化参数"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/plain":["array([2.94059737e+01, 2.82952253e+01, 2.72264331e+01, 2.61980122e+01,\n","       2.52084378e+01, 2.42562424e+01, 2.33400142e+01, 2.24583946e+01,\n","       2.16100763e+01, 2.07938014e+01, 2.00083596e+01, 1.92525862e+01,\n","       1.85253605e+01, 1.78256042e+01, 1.71522798e+01, 1.65043887e+01,\n","       1.58809704e+01, 1.52811004e+01, 1.47038891e+01, 1.41484809e+01,\n","       1.36140520e+01, 1.30998100e+01, 1.26049924e+01, 1.21288655e+01,\n","       1.16707233e+01, 1.12298864e+01, 1.08057012e+01, 1.03975388e+01,\n","       1.00047937e+01, 9.62688384e+00, 9.26324869e+00, 8.91334908e+00,\n","       8.57666619e+00, 8.25270079e+00, 7.94097249e+00, 7.64101907e+00,\n","       7.35239575e+00, 7.07467457e+00, 6.80744372e+00, 6.55030695e+00,\n","       6.30288297e+00, 6.06480491e+00, 5.83571975e+00, 5.61528779e+00,\n","       5.40318218e+00, 5.19908842e+00, 5.00270386e+00, 4.81373731e+00,\n","       4.63190858e+00, 4.45694804e+00, 4.28859627e+00, 4.12660362e+00,\n","       3.97072991e+00, 3.82074399e+00, 3.67642348e+00, 3.53755437e+00,\n","       3.40393074e+00, 3.27535446e+00, 3.15163488e+00, 3.03258855e+00,\n","       2.91803894e+00, 2.80781620e+00, 2.70175688e+00, 2.59970374e+00,\n","       2.50150543e+00, 2.40701636e+00, 2.31609642e+00, 2.22861078e+00,\n","       2.14442973e+00, 2.06342843e+00, 1.98548679e+00, 1.91048923e+00,\n","       1.83832455e+00, 1.76888573e+00, 1.70206982e+00, 1.63777773e+00,\n","       1.57591415e+00, 1.51638733e+00, 1.45910901e+00, 1.40399425e+00,\n","       1.35096134e+00, 1.29993164e+00, 1.25082947e+00, 1.20358204e+00,\n","       1.15811928e+00, 1.11437377e+00, 1.07228066e+00, 1.03177753e+00,\n","       9.92804320e-01, 9.55303239e-01, 9.19218682e-01, 8.84497142e-01,\n","       8.51087135e-01, 8.18939121e-01, 7.88005430e-01, 7.58240193e-01,\n","       7.29599275e-01, 7.02040207e-01, 6.75522125e-01, 6.50005707e-01,\n","       6.25453118e-01, 6.01827951e-01, 5.79095174e-01, 5.57221080e-01,\n","       5.36173234e-01, 5.15920425e-01, 4.96432623e-01, 4.77680932e-01,\n","       4.59637546e-01, 4.42275711e-01, 4.25569683e-01, 4.09494689e-01,\n","       3.94026894e-01, 3.79143363e-01, 3.64822025e-01, 3.51041645e-01,\n","       3.37781790e-01, 3.25022798e-01, 3.12745750e-01, 3.00932442e-01,\n","       2.89565356e-01, 2.78627638e-01, 2.68103069e-01, 2.57976043e-01,\n","       2.48231544e-01, 2.38855123e-01, 2.29832877e-01, 2.21151426e-01,\n","       2.12797900e-01, 2.04759910e-01, 1.97025538e-01, 1.89583315e-01,\n","       1.82422207e-01, 1.75531594e-01, 1.68901260e-01, 1.62521372e-01,\n","       1.56382472e-01, 1.50475455e-01, 1.44791563e-01, 1.39322368e-01,\n","       1.34059761e-01, 1.28995937e-01, 1.24123389e-01, 1.19434891e-01,\n","       1.14923491e-01, 1.10582499e-01, 1.06405479e-01, 1.02386238e-01,\n","       9.85188143e-02, 9.47974747e-02, 9.12167008e-02, 8.77711831e-02,\n","       8.44558125e-02, 8.12656730e-02, 7.81960343e-02, 7.52423447e-02,\n","       7.24002244e-02, 6.96654592e-02, 6.70339940e-02, 6.45019268e-02,\n","       6.20655031e-02, 5.97211101e-02, 5.74652717e-02, 5.52946427e-02,\n","       5.32060046e-02, 5.11962605e-02, 4.92624301e-02, 4.74016461e-02,\n","       4.56111493e-02, 4.38882847e-02, 4.22304977e-02, 4.06353301e-02,\n","       3.91004165e-02, 3.76234811e-02, 3.62023337e-02, 3.48348672e-02,\n","       3.35190539e-02, 3.22529426e-02, 3.10346560e-02, 2.98623876e-02,\n","       2.87343991e-02, 2.76490180e-02, 2.66046349e-02, 2.55997012e-02,\n","       2.46327267e-02, 2.37022776e-02, 2.28069742e-02, 2.19454891e-02,\n","       2.11165447e-02, 2.03189119e-02, 1.95514080e-02, 1.88128950e-02,\n","       1.81022777e-02, 1.74185025e-02, 1.67605555e-02, 1.61274610e-02,\n","       1.55182803e-02, 1.49321101e-02, 1.43680812e-02, 1.38253574e-02,\n","       1.33031338e-02, 1.28006361e-02, 1.23171192e-02, 1.18518661e-02,\n","       1.14041869e-02, 1.09734179e-02, 1.05589203e-02, 1.01600794e-02,\n","       9.77630394e-03, 9.40702475e-03, 9.05169431e-03, 8.70978573e-03,\n","       8.38079201e-03, 8.06422534e-03, 7.75961630e-03, 7.46651323e-03,\n","       7.18448150e-03, 6.91310292e-03, 6.65197510e-03, 6.40071082e-03,\n","       6.15893752e-03, 5.92629670e-03, 5.70244339e-03, 5.48704566e-03,\n","       5.27978413e-03, 5.08035147e-03, 4.88845195e-03, 4.70380102e-03,\n","       4.52612490e-03, 4.35516012e-03, 4.19065316e-03, 4.03236011e-03,\n","       3.88004625e-03, 3.73348572e-03, 3.59246120e-03, 3.45676358e-03,\n","       3.32619166e-03, 3.20055181e-03, 3.07965774e-03, 2.96333019e-03,\n","       2.85139667e-03, 2.74369120e-03, 2.64005407e-03, 2.54033162e-03,\n","       2.44437597e-03, 2.35204484e-03, 2.26320133e-03, 2.17771369e-03,\n","       2.09545517e-03, 2.01630379e-03, 1.94014218e-03, 1.86685742e-03,\n","       1.79634083e-03, 1.72848786e-03, 1.66319789e-03, 1.60037411e-03,\n","       1.53992337e-03, 1.48175602e-03, 1.42578583e-03, 1.37192979e-03,\n","       1.32010804e-03, 1.27024376e-03, 1.22226299e-03, 1.17609459e-03,\n","       1.13167011e-03, 1.08892367e-03, 1.04779188e-03, 1.00821376e-03,\n","       9.70130622e-04, 9.33485992e-04, 8.98225535e-04, 8.64296967e-04,\n","       8.31649980e-04, 8.00236162e-04, 7.70008936e-04, 7.40923479e-04,\n","       7.12936663e-04, 6.86006990e-04, 6.60094529e-04, 6.35160855e-04,\n","       6.11168999e-04, 5.88083384e-04, 5.65869780e-04, 5.44495247e-04,\n","       5.23928092e-04, 5.04137817e-04, 4.85095079e-04, 4.66771639e-04,\n","       4.49140329e-04, 4.32175004e-04, 4.15850508e-04, 4.00142636e-04,\n","       3.85028095e-04, 3.70484474e-04, 3.56490207e-04, 3.43024545e-04,\n","       3.30067519e-04, 3.17599917e-04, 3.05603253e-04, 2.94059737e-04])"]},"metadata":{"tags":[]},"execution_count":98}]},{"metadata":{"id":"Ur539lAMRjUU","colab_type":"code","outputId":"332f643c-7b34-4aa5-c69b-eda621e469ea","executionInfo":{"status":"ok","timestamp":1551611889701,"user_tz":-480,"elapsed":1842,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":34}},"cell_type":"code","source":["\n","ls_.alphas_.shape"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/plain":["(300,)"]},"metadata":{"tags":[]},"execution_count":95}]},{"metadata":{"id":"vY_I3FB8RkQo","colab_type":"code","outputId":"2f99e9e1-ebb9-4e0e-cc98-db01349f3bb0","executionInfo":{"status":"ok","timestamp":1551611893944,"user_tz":-480,"elapsed":1096,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":34}},"cell_type":"code","source":["\n","ls_.score(Xtest,Ytest)"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/plain":["0.60389154238192"]},"metadata":{"tags":[]},"execution_count":96}]},{"metadata":{"id":"kImu8cTjRk-B","colab_type":"code","outputId":"ffc05945-d2db-4b46-fc76-a7df8450a7c1","executionInfo":{"status":"ok","timestamp":1551611900566,"user_tz":-480,"elapsed":859,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":51}},"cell_type":"code","source":["\n","ls_.coef_"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/plain":["array([ 4.29785372e-01,  1.03639989e-02, -9.31060823e-02,  5.50940621e-01,\n","        1.15407943e-06, -3.31909776e-03, -4.10423420e-01, -4.22369926e-01])"]},"metadata":{"tags":[]},"execution_count":97}]},{"metadata":{"id":"JrvSafyzS9QT","colab_type":"code","outputId":"4af6a9f7-41b9-458f-899a-2de2d3250851","executionInfo":{"status":"ok","timestamp":1551612326063,"user_tz":-480,"elapsed":719,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":34}},"cell_type":"code","source":["ala =ls_.alphas_\n","ala.min()/ala.max()"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/plain":["1e-05"]},"metadata":{"tags":[]},"execution_count":101}]},{"metadata":{"id":"DSdL6K9FUGhW","colab_type":"code","colab":{}},"cell_type":"code","source":[""],"execution_count":0,"outputs":[]},{"metadata":{"id":"01y1Ns2nTyRg","colab_type":"text"},"cell_type":"markdown","source":["#### 改变默认值看正则化路径"]},{"metadata":{"id":"AXgFAhCsTbqk","colab_type":"code","outputId":"eb0a5c52-876f-4c44-c640-ad35a7bc0805","executionInfo":{"status":"ok","timestamp":1551612394015,"user_tz":-480,"elapsed":817,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":34}},"cell_type":"code","source":["ls_2 = LassoCV(eps=0.001\n","              ,n_alphas=300\n","              ,cv=5\n","                ).fit(Xtrain, Ytrain)\n","ala2 =ls_2.alphas_\n","ala2.min()/ala2.max()"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/plain":["0.001"]},"metadata":{"tags":[]},"execution_count":102}]},{"metadata":{"id":"XVt07yVLTka-","colab_type":"code","outputId":"69236851-5027-4e21-e5ad-a21a7d7c9c37","executionInfo":{"status":"ok","timestamp":1551612403438,"user_tz":-480,"elapsed":1203,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":1037}},"cell_type":"code","source":["ala2"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/plain":["array([29.4059737 , 28.73439911, 28.07816196, 27.43691198, 26.81030689,\n","       26.19801222, 25.59970116, 25.01505435, 24.44375972, 23.88551233,\n","       23.34001422, 22.80697421, 22.28610779, 21.77713693, 21.27978996,\n","       20.79380142, 20.3189119 , 19.85486793, 19.40142181, 18.9583315 ,\n","       18.5253605 , 18.10227771, 17.6888573 , 17.2848786 , 16.89012598,\n","       16.50438873, 16.12746096, 15.75914148, 15.39923369, 15.04754549,\n","       14.70388915, 14.36808125, 14.03994254, 13.71929787, 13.4059761 ,\n","       13.09980998, 12.80063609, 12.50829474, 12.2226299 , 11.94348907,\n","       11.67072328, 11.40418692, 11.14373773, 10.88923668, 10.64054794,\n","       10.39753875, 10.16007942,  9.9280432 ,  9.70130622,  9.47974747,\n","        9.26324869,  9.05169431,  8.84497142,  8.64296967,  8.44558125,\n","        8.25270079,  8.06422534,  7.8800543 ,  7.70008936,  7.52423447,\n","        7.35239575,  7.1844815 ,  7.02040207,  6.8600699 ,  6.7033994 ,\n","        6.55030695,  6.40071082,  6.25453118,  6.11168999,  5.97211101,\n","        5.83571975,  5.70244339,  5.5722108 ,  5.44495247,  5.32060046,\n","        5.19908842,  5.08035147,  4.96432623,  4.85095079,  4.74016461,\n","        4.63190858,  4.5261249 ,  4.42275711,  4.32175004,  4.22304977,\n","        4.12660362,  4.03236011,  3.94026894,  3.85028095,  3.76234811,\n","        3.67642348,  3.5924612 ,  3.51041645,  3.43024545,  3.35190539,\n","        3.27535446,  3.20055181,  3.1274575 ,  3.05603253,  2.98623876,\n","        2.91803894,  2.85139667,  2.78627638,  2.72264331,  2.66046349,\n","        2.59970374,  2.54033162,  2.48231544,  2.42562424,  2.37022776,\n","        2.31609642,  2.26320133,  2.21151426,  2.16100763,  2.11165447,\n","        2.06342843,  2.01630379,  1.97025538,  1.92525862,  1.8812895 ,\n","        1.83832455,  1.79634083,  1.75531594,  1.71522798,  1.67605555,\n","        1.63777773,  1.60037411,  1.56382472,  1.52811004,  1.49321101,\n","        1.45910901,  1.42578583,  1.39322368,  1.3614052 ,  1.33031338,\n","        1.29993164,  1.27024376,  1.24123389,  1.21288655,  1.18518661,\n","        1.15811928,  1.13167011,  1.10582499,  1.08057012,  1.05589203,\n","        1.03177753,  1.00821376,  0.98518814,  0.96268838,  0.94070248,\n","        0.91921868,  0.89822554,  0.87771183,  0.85766662,  0.8380792 ,\n","        0.81893912,  0.80023616,  0.78196034,  0.76410191,  0.74665132,\n","        0.72959928,  0.71293666,  0.69665459,  0.68074437,  0.66519751,\n","        0.65000571,  0.63516086,  0.62065503,  0.60648049,  0.59262967,\n","        0.57909517,  0.56586978,  0.55294643,  0.54031822,  0.52797841,\n","        0.51592042,  0.50413782,  0.4926243 ,  0.48137373,  0.4703801 ,\n","        0.45963755,  0.44914033,  0.43888285,  0.42885963,  0.41906532,\n","        0.40949469,  0.40014264,  0.39100417,  0.3820744 ,  0.37334857,\n","        0.36482202,  0.35649021,  0.34834867,  0.34039307,  0.33261917,\n","        0.3250228 ,  0.31759992,  0.31034656,  0.30325885,  0.29633302,\n","        0.28956536,  0.28295225,  0.27649018,  0.27017569,  0.26400541,\n","        0.25797604,  0.25208438,  0.24632727,  0.24070164,  0.23520448,\n","        0.22983288,  0.22458395,  0.21945489,  0.21444297,  0.20954552,\n","        0.20475991,  0.2000836 ,  0.19551408,  0.19104892,  0.18668574,\n","        0.18242221,  0.17825604,  0.17418503,  0.17020698,  0.16631979,\n","        0.16252137,  0.1588097 ,  0.1551828 ,  0.15163873,  0.1481756 ,\n","        0.14479156,  0.14148481,  0.13825357,  0.13509613,  0.1320108 ,\n","        0.12899594,  0.12604992,  0.12317119,  0.1203582 ,  0.11760946,\n","        0.11492349,  0.11229886,  0.10973418,  0.10722807,  0.10477919,\n","        0.10238624,  0.10004794,  0.09776304,  0.09553032,  0.0933486 ,\n","        0.0912167 ,  0.08913349,  0.08709786,  0.08510871,  0.083165  ,\n","        0.08126567,  0.07940972,  0.07759616,  0.07582402,  0.07409235,\n","        0.07240022,  0.07074675,  0.06913103,  0.06755221,  0.06600945,\n","        0.06450193,  0.06302883,  0.06158938,  0.0601828 ,  0.05880834,\n","        0.05746527,  0.05615288,  0.05487046,  0.05361732,  0.05239281,\n","        0.05119626,  0.05002704,  0.04888452,  0.04776809,  0.04667716,\n","        0.04561115,  0.04456948,  0.0435516 ,  0.04255697,  0.04158505,\n","        0.04063533,  0.0397073 ,  0.03880046,  0.03791434,  0.03704845,\n","        0.03620233,  0.03537554,  0.03456764,  0.03377818,  0.03300675,\n","        0.03225294,  0.03151635,  0.03079658,  0.03009324,  0.02940597])"]},"metadata":{"tags":[]},"execution_count":103}]},{"metadata":{"id":"f1Pu728_UJmW","colab_type":"code","outputId":"47a564d5-f4b9-422a-cf7e-f7a1b21850d7","executionInfo":{"status":"ok","timestamp":1551612565338,"user_tz":-480,"elapsed":1033,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}},"colab":{"base_uri":"https://localhost:8080/","height":34}},"cell_type":"code","source":["ala.max()-ala2.max()\n","# 最大值是一样的"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/plain":["0.0"]},"metadata":{"tags":[]},"execution_count":104}]},{"metadata":{"id":"1sneBW6IPyf7","colab_type":"text"},"cell_type":"markdown","source":["# 非线性问题：多项式回归"]},{"metadata":{"id":"MYk7YXiaVWOp","colab_type":"code","colab":{}},"cell_type":"code","source":["import numpy as np\n","import matplotlib.pyplot as plt\n","from sklearn.linear_model import LinearRegression\n","from sklearn.tree import DecisionTreeRegressor"],"execution_count":0,"outputs":[]},{"metadata":{"id":"wzrkHx7ZVWOr","colab_type":"code","colab":{}},"cell_type":"code","source":["rnd = np.random.RandomState(42) #设置随机数种子\n","X = rnd.uniform(-3, 3, size=100) #random.uniform，从输入的任意两个整数中取出size个随机数"],"execution_count":0,"outputs":[]},{"metadata":{"id":"Iwvvnvp2VWOu","colab_type":"code","outputId":"c9b925d5-ed67-4803-f164-84a2505f33c8","colab":{"base_uri":"https://localhost:8080/","height":357},"executionInfo":{"status":"ok","timestamp":1551679260058,"user_tz":-480,"elapsed":590,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}}},"cell_type":"code","source":["X #作为我的横坐标"],"execution_count":3,"outputs":[{"output_type":"execute_result","data":{"text/plain":["array([-0.75275929,  2.70428584,  1.39196365,  0.59195091, -2.06388816,\n","       -2.06403288, -2.65149833,  2.19705687,  0.60669007,  1.24843547,\n","       -2.87649303,  2.81945911,  1.99465584, -1.72596534, -1.9090502 ,\n","       -1.89957294, -1.17454654,  0.14853859, -0.40832989, -1.25262516,\n","        0.67111737, -2.16303684, -1.24713211, -0.80182894, -0.26358009,\n","        1.71105577, -1.80195731,  0.08540663,  0.55448741, -2.72129752,\n","        0.64526911, -1.97685526, -2.60969044,  2.69331322,  2.7937922 ,\n","        1.85038409, -1.17231738, -2.41396732,  1.10539816, -0.35908504,\n","       -2.26777059, -0.02893854, -2.79366887,  2.45592241, -1.44732011,\n","        0.97513371, -1.12973354,  0.12040813,  0.28026168, -1.89087327,\n","        2.81750777,  1.65079694,  2.63699365,  2.3689641 ,  0.58739987,\n","        2.53124541, -2.46904499, -1.82410283, -2.72863627, -1.04801802,\n","       -0.66793626, -1.37190581,  1.97242505, -0.85948004, -1.31439294,\n","        0.2561765 , -2.15445465,  1.81318188, -2.55269614,  2.92132162,\n","        1.63346862, -1.80770591, -2.9668673 ,  1.89276857,  1.24114406,\n","        1.37404301,  1.62762208, -2.55573209, -0.84920563, -2.30478564,\n","        2.17862056,  0.73978876, -1.01461185, -2.6186499 , -1.13410607,\n","       -1.04890007,  1.37763707,  0.82534483,  2.32327646, -0.16671045,\n","       -2.28243452,  1.27946872,  1.56471029,  0.36766319,  1.62580308,\n","       -0.03722642,  0.13639698, -0.43475389, -2.84748524, -2.35265144])"]},"metadata":{"tags":[]},"execution_count":3}]},{"metadata":{"id":"_eLNqudQVWOy","colab_type":"code","colab":{}},"cell_type":"code","source":["#生成y的思路：先使用NumPy中的函数生成一个sin函数图像，然后再人为添加噪音\n","y = np.sin(X) + rnd.normal(size=len(X)) / 3 #random.normal，生成size个服从正态分布的随机数"],"execution_count":0,"outputs":[]},{"metadata":{"id":"XznC6B-rVWOz","colab_type":"code","outputId":"94b190d5-5d65-4ced-eca3-0a7404cb4213","colab":{"base_uri":"https://localhost:8080/","height":347},"executionInfo":{"status":"ok","timestamp":1551679267813,"user_tz":-480,"elapsed":962,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}}},"cell_type":"code","source":["#使用散点图观察建立的数据集是什么样子\n","plt.scatter(X, y,marker='o',c='k',s=20)\n","plt.show()"],"execution_count":5,"outputs":[{"output_type":"display_data","data":{"image/png":"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\nSUR/WHmqrA0AAOwjnAEAMAzhDACAYQhnAAAMY8yCMAAAcBEjZwAADEM4AwBgGMIZAADDEM4AABiG\ncAYAwDCEMwAAhvFdOJ8+fVrf+973tGbNGlVXV+vw4cNuN8l1Fy5c0ObNm7Vq1Sp961vf0ptvvul2\nk4zQ0dGh8vJytbW1ud0UVz322GNauXKlqqur9Ze//MXt5hijq6tLS5cu1bPPPut2U4xQX1+vlStX\n6q677tKrr77qdnNc99FHH+kHP/iBVq9eraqqKsd/j9i6K5XJXnnlFa1YsULf+MY31NHRoZ/+9Kdq\nbm52u1muOnDggKZMmaLnnntOb7/9trZs2aL9+/e73SxXvfvuu9q7d6/KysrcboqrOjo6dPz4cbW0\ntOidd97R1q1b1dLS4nazXDcwMKC6ujqVl5e73RQj/PnPf9bbb7+tlpYW9ff365vf/KZuvfVWt5vl\nqra2Nl1//fWqqalRT0+Pvvvd7+orX/mKY9f3XTh/5zvfif/7gw8+0PTp011sjRluv/12ff3rX5ck\nRSIR/fvf/3a5Re6LRqNqaGjQtm3b3G6Kq9rb27V06VJJ0pw5c3TmzBmdO3dO+fn5LrfMXZMmTVJT\nU5OamprcbooRFi1aFL/t75VXXqmPPvpIQ0NDysvLc7ll7lm+fHn839nIGt+FsyTFYjF9//vf14cf\nfqhnnnnG7ea4buLEifF/P/PMM/GgDrIpU6a43QQj9Pb2qrS0NP44EokoFosFPpzD4bDCYV/+erQl\nLy9PU6dOlSTt379fFRUVgQ7my1VXV+tf//qXnnrqKUev6+lPX2trq1pbWxO+dv/992vJkiV64YUX\n9Ic//EFbtmwJVFk7XZ/86le/0tGjRx3/EJkuXZ8gEaf5Ip3f/e532r9/f6B+p47m+eef19/+9jf9\n8Ic/1CuvvKJQKOTIdT0dzlVVVaqqqkr4WkdHh86cOaNp06bplltu0aZNm1xqnTuS9Yl0MaB+//vf\n6+c//3nCSDoIUvUJpKKiIvX29sYfnzp1StFo1MUWwVSvv/66nnrqKe3evVsFBQVuN8d1R44c0dVX\nX62ZM2fq85//vIaGhtTX16err77akev7brX2q6++qpdeekmS9Pe//10zZ850uUXuO3HihJ5//nk1\nNDRo8uTJbjcHBlm8eLEOHjwoSTp69KiKiooCX9KG1dmzZ1VfX69f/OIXuuqqq9xujhHefPPNeAWh\nt7dXAwMDKiwsdOz6vrsrVV9fnx566CF9+OGHGhwc1LZt27Rw4UK3m+WqnTt36je/+Y1mzZoV/9qe\nPXs0adIkF1vlrtdee0179uzRsWPHFIlEFI1GA1uqe/zxx/Xmm28qFApp+/btuvbaa91ukuuOHDmi\nHTt2qKenR+FwWNOnT9euXbuBZ/GsAAAAa0lEQVQCG0wtLS3atWuXSkpK4l/bsWNHwu+UoPn444+1\nbds2ffDBB/r444913333qbKy0rHr+y6cAQDwOt+VtQEA8DrCGQAAwxDOAAAYhnAGAMAwhDMAAIYh\nnAEAMAzhDACAYQhnAAAM8/8BtQG1qrauclIAAAAASUVORK5CYII=\n","text/plain":["<Figure size 576x396 with 1 Axes>"]},"metadata":{"tags":[]}}]},{"metadata":{"id":"M0K1erfiVWO1","colab_type":"code","outputId":"3613f02e-2ec9-462d-a19b-9dbf1a73df3d","colab":{"base_uri":"https://localhost:8080/","height":34},"executionInfo":{"status":"ok","timestamp":1551679306334,"user_tz":-480,"elapsed":702,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}}},"cell_type":"code","source":["#为后续建模做准备：sklearn只接受二维以上数组作为特征矩阵的输入\n","X.shape"],"execution_count":6,"outputs":[{"output_type":"execute_result","data":{"text/plain":["(100,)"]},"metadata":{"tags":[]},"execution_count":6}]},{"metadata":{"id":"VfPjCaxyVWO5","colab_type":"code","colab":{}},"cell_type":"code","source":["X = X.reshape(-1, 1)"],"execution_count":0,"outputs":[]},{"metadata":{"id":"Oz04nVh2VWO5","colab_type":"code","outputId":"f9b875ae-34b1-489c-cdc8-1b1aa90722a6","colab":{"base_uri":"https://localhost:8080/","height":34},"executionInfo":{"status":"ok","timestamp":1551679311132,"user_tz":-480,"elapsed":540,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}}},"cell_type":"code","source":["X.shape"],"execution_count":8,"outputs":[{"output_type":"execute_result","data":{"text/plain":["(100, 1)"]},"metadata":{"tags":[]},"execution_count":8}]},{"metadata":{"id":"BWsZXujWVWO7","colab_type":"code","colab":{}},"cell_type":"code","source":["#使用原始数据进行建模\n","LinearR = LinearRegression().fit(X, y)\n","TreeR = DecisionTreeRegressor(random_state=0).fit(X, y)"],"execution_count":0,"outputs":[]},{"metadata":{"id":"OCVZfskJVWO8","colab_type":"code","outputId":"96ef36b9-5f53-4ae0-b8ab-f99a829107af","colab":{"base_uri":"https://localhost:8080/","height":401},"executionInfo":{"status":"ok","timestamp":1551679318149,"user_tz":-480,"elapsed":793,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}}},"cell_type":"code","source":["#放置画布\n","fig, ax1 = plt.subplots(1)\n","\n","#创建测试数据：一系列分布在横坐标上的点\n","line = np.linspace(-3, 3, 1000, endpoint=False).reshape(-1, 1)\n","\n","#将测试数据带入predict接口，获得模型的拟合效果并进行绘制\n","ax1.plot(line, LinearR.predict(line), linewidth=2, color='green',\n","         label=\"linear regression\")\n","ax1.plot(line, TreeR.predict(line), linewidth=2, color='red',\n","         label=\"decision tree\")\n","\n","#将原数据上的拟合绘制在图像上\n","ax1.plot(X[:, 0], y, 'o', c='k')\n","\n","#其他图形选项\n","ax1.legend(loc=\"best\")\n","ax1.set_ylabel(\"Regression output\")\n","ax1.set_xlabel(\"Input feature\")\n","ax1.set_title(\"Result before discretization\")\n","plt.tight_layout()\n","plt.show()\n","\n","#从这个图像来看，可以得出什么结果？"],"execution_count":10,"outputs":[{"output_type":"display_data","data":{"image/png":"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\n","text/plain":["<Figure size 576x396 with 1 Axes>"]},"metadata":{"tags":[]}}]},{"metadata":{"id":"g6tME_7sS3uZ","colab_type":"text"},"cell_type":"markdown","source":["## 使用分箱处理非线性问题"]},{"metadata":{"id":"_9PVE0YsVWO-","colab_type":"code","colab":{}},"cell_type":"code","source":["from sklearn.preprocessing import KBinsDiscretizer"],"execution_count":0,"outputs":[]},{"metadata":{"id":"RBs6WGn8S83O","colab_type":"code","colab":{}},"cell_type":"code","source":["#将数据分箱\n","enc = KBinsDiscretizer(n_bins=10 #分几类？\n","                       ,encode=\"onehot\") #ordinal\n","X_binned = enc.fit_transform(X)\n","#encode模式\"onehot\"：使用做哑变量方式做离散化\n","#之后返回一个稀疏矩阵(m,n_bins)，每一列是一个分好的类别\n","#对每一个样本而言，它包含的分类（箱子）中它表示为1，其余分类中它表示为0"],"execution_count":0,"outputs":[]},{"metadata":{"id":"RFEEu5UVS_4k","colab_type":"code","colab":{"base_uri":"https://localhost:8080/","height":34},"outputId":"3ddb8677-ab04-489c-9764-88a9ec30ac2b","executionInfo":{"status":"ok","timestamp":1551679366233,"user_tz":-480,"elapsed":630,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}}},"cell_type":"code","source":["X.shape"],"execution_count":13,"outputs":[{"output_type":"execute_result","data":{"text/plain":["(100, 1)"]},"metadata":{"tags":[]},"execution_count":13}]},{"metadata":{"id":"T7vXP_tjTBdI","colab_type":"code","colab":{"base_uri":"https://localhost:8080/","height":51},"outputId":"653d0e13-9c10-43c9-ad70-6b50f190ac40","executionInfo":{"status":"ok","timestamp":1551679377154,"user_tz":-480,"elapsed":686,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}}},"cell_type":"code","source":["X_binned"],"execution_count":14,"outputs":[{"output_type":"execute_result","data":{"text/plain":["<100x10 sparse matrix of type '<class 'numpy.float64'>'\n","\twith 100 stored elements in Compressed Sparse Row format>"]},"metadata":{"tags":[]},"execution_count":14}]},{"metadata":{"id":"GfLv4qM6TDCE","colab_type":"code","colab":{"base_uri":"https://localhost:8080/","height":204},"outputId":"bfa606a8-2c3c-4ffa-9e28-702e8fcff3d3","executionInfo":{"status":"ok","timestamp":1551679386849,"user_tz":-480,"elapsed":782,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}}},"cell_type":"code","source":["#使用pandas打开稀疏矩阵\n","import pandas as pd\n","pd.DataFrame(X_binned.toarray()).head()"],"execution_count":15,"outputs":[{"output_type":"execute_result","data":{"text/html":["<div>\n","<style scoped>\n","    .dataframe tbody tr th:only-of-type {\n","        vertical-align: middle;\n","    }\n","\n","    .dataframe tbody tr th {\n","        vertical-align: top;\n","    }\n","\n","    .dataframe thead th {\n","        text-align: right;\n","    }\n","</style>\n","<table border=\"1\" class=\"dataframe\">\n","  <thead>\n","    <tr style=\"text-align: right;\">\n","      <th></th>\n","      <th>0</th>\n","      <th>1</th>\n","      <th>2</th>\n","      <th>3</th>\n","      <th>4</th>\n","      <th>5</th>\n","      <th>6</th>\n","      <th>7</th>\n","      <th>8</th>\n","      <th>9</th>\n","    </tr>\n","  </thead>\n","  <tbody>\n","    <tr>\n","      <th>0</th>\n","      <td>0.0</td>\n","      <td>0.0</td>\n","      <td>0.0</td>\n","      <td>0.0</td>\n","      <td>1.0</td>\n","      <td>0.0</td>\n","      <td>0.0</td>\n","      <td>0.0</td>\n","      <td>0.0</td>\n","      <td>0.0</td>\n","    </tr>\n","    <tr>\n","      <th>1</th>\n","      <td>0.0</td>\n","      <td>0.0</td>\n","      <td>0.0</td>\n","      <td>0.0</td>\n","      <td>0.0</td>\n","      <td>0.0</td>\n","      <td>0.0</td>\n","      <td>0.0</td>\n","      <td>0.0</td>\n","      <td>1.0</td>\n","    </tr>\n","    <tr>\n","      <th>2</th>\n","      <td>0.0</td>\n","      <td>0.0</td>\n","      <td>0.0</td>\n","      <td>0.0</td>\n","      <td>0.0</td>\n","      <td>0.0</td>\n","      <td>0.0</td>\n","      <td>1.0</td>\n","      <td>0.0</td>\n","      <td>0.0</td>\n","    </tr>\n","    <tr>\n","      <th>3</th>\n","      <td>0.0</td>\n","      <td>0.0</td>\n","      <td>0.0</td>\n","      <td>0.0</td>\n","      <td>0.0</td>\n","      <td>0.0</td>\n","      <td>1.0</td>\n","      <td>0.0</td>\n","      <td>0.0</td>\n","      <td>0.0</td>\n","    </tr>\n","    <tr>\n","      <th>4</th>\n","      <td>0.0</td>\n","      <td>0.0</td>\n","      <td>1.0</td>\n","      <td>0.0</td>\n","      <td>0.0</td>\n","      <td>0.0</td>\n","      <td>0.0</td>\n","      <td>0.0</td>\n","      <td>0.0</td>\n","      <td>0.0</td>\n","    </tr>\n","  </tbody>\n","</table>\n","</div>"],"text/plain":["     0    1    2    3    4    5    6    7    8    9\n","0  0.0  0.0  0.0  0.0  1.0  0.0  0.0  0.0  0.0  0.0\n","1  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  1.0\n","2  0.0  0.0  0.0  0.0  0.0  0.0  0.0  1.0  0.0  0.0\n","3  0.0  0.0  0.0  0.0  0.0  0.0  1.0  0.0  0.0  0.0\n","4  0.0  0.0  1.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0"]},"metadata":{"tags":[]},"execution_count":15}]},{"metadata":{"id":"W9ErNEdRTGPj","colab_type":"code","colab":{}},"cell_type":"code","source":["#我们将使用分箱后的数据来训练模型，在sklearn中，测试集和训练集的结构必须保持一致，否则报错\n","LinearR_ = LinearRegression().fit(X_binned, y)"],"execution_count":0,"outputs":[]},{"metadata":{"id":"9_hHzjKbTIxc","colab_type":"code","colab":{"base_uri":"https://localhost:8080/","height":522},"outputId":"f84a0aea-544f-49d1-ec1a-1a080b2fb226","executionInfo":{"status":"error","timestamp":1551679405148,"user_tz":-480,"elapsed":667,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}}},"cell_type":"code","source":["LinearR_.predict(line) #line作为测试集"],"execution_count":17,"outputs":[{"output_type":"error","ename":"ValueError","evalue":"ignored","traceback":["\u001b[0;31m---------------------------------------------------------------------------\u001b[0m","\u001b[0;31mValueError\u001b[0m                                Traceback (most recent call last)","\u001b[0;32m<ipython-input-17-abc35ebde7c7>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mLinearR_\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpredict\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mline\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;31m#line作为测试集\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m","\u001b[0;32m/usr/local/lib/python3.6/dist-packages/sklearn/linear_model/base.py\u001b[0m in \u001b[0;36mpredict\u001b[0;34m(self, X)\u001b[0m\n\u001b[1;32m    211\u001b[0m             \u001b[0mReturns\u001b[0m \u001b[0mpredicted\u001b[0m \u001b[0mvalues\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    212\u001b[0m         \"\"\"\n\u001b[0;32m--> 213\u001b[0;31m         \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_decision_function\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mX\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    214\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    215\u001b[0m     \u001b[0m_preprocess_data\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mstaticmethod\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0m_preprocess_data\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;32m/usr/local/lib/python3.6/dist-packages/sklearn/linear_model/base.py\u001b[0m in \u001b[0;36m_decision_function\u001b[0;34m(self, X)\u001b[0m\n\u001b[1;32m    196\u001b[0m         \u001b[0mX\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcheck_array\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mX\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maccept_sparse\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'csr'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'csc'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'coo'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    197\u001b[0m         return safe_sparse_dot(X, self.coef_.T,\n\u001b[0;32m--> 198\u001b[0;31m                                dense_output=True) + self.intercept_\n\u001b[0m\u001b[1;32m    199\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    200\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0mpredict\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mX\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;32m/usr/local/lib/python3.6/dist-packages/sklearn/utils/extmath.py\u001b[0m in \u001b[0;36msafe_sparse_dot\u001b[0;34m(a, b, dense_output)\u001b[0m\n\u001b[1;32m    171\u001b[0m         \u001b[0;32mreturn\u001b[0m \u001b[0mret\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    172\u001b[0m     \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 173\u001b[0;31m         \u001b[0;32mreturn\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mb\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    174\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    175\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n","\u001b[0;31mValueError\u001b[0m: shapes (1000,1) and (10,) not aligned: 1 (dim 1) != 10 (dim 0)"]}]},{"metadata":{"id":"woQjMi8LTK7k","colab_type":"code","colab":{"base_uri":"https://localhost:8080/","height":34},"outputId":"d6a9cdfa-94a1-45f9-f423-a38b14d1fdc7","executionInfo":{"status":"ok","timestamp":1551679414345,"user_tz":-480,"elapsed":776,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}}},"cell_type":"code","source":["line.shape #测试"],"execution_count":18,"outputs":[{"output_type":"execute_result","data":{"text/plain":["(1000, 1)"]},"metadata":{"tags":[]},"execution_count":18}]},{"metadata":{"id":"_VWe7YE6TNQG","colab_type":"code","colab":{"base_uri":"https://localhost:8080/","height":34},"outputId":"93e8a8b1-53db-4262-c3a8-f698e152489d","executionInfo":{"status":"ok","timestamp":1551679421916,"user_tz":-480,"elapsed":852,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}}},"cell_type":"code","source":["X_binned.shape #训练"],"execution_count":19,"outputs":[{"output_type":"execute_result","data":{"text/plain":["(100, 10)"]},"metadata":{"tags":[]},"execution_count":19}]},{"metadata":{"id":"8QZinELLTO7t","colab_type":"code","colab":{"base_uri":"https://localhost:8080/","height":34},"outputId":"f3d0184a-f780-4c1b-baa8-4b51a801aa4d","executionInfo":{"status":"ok","timestamp":1551679432309,"user_tz":-480,"elapsed":609,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}}},"cell_type":"code","source":["#因此我们需要创建分箱后的测试集：按照已经建好的分箱模型将line分箱\n","line_binned = enc.transform(line)\n","\n","line_binned.shape #分箱后的数据是无法进行绘图的"],"execution_count":20,"outputs":[{"output_type":"execute_result","data":{"text/plain":["(1000, 10)"]},"metadata":{"tags":[]},"execution_count":20}]},{"metadata":{"id":"PDdtRs_9TRnu","colab_type":"code","colab":{"base_uri":"https://localhost:8080/","height":51},"outputId":"32148178-ba83-4c6b-d323-a4e6ba89eb02","executionInfo":{"status":"ok","timestamp":1551679439686,"user_tz":-480,"elapsed":661,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}}},"cell_type":"code","source":["line_binned"],"execution_count":21,"outputs":[{"output_type":"execute_result","data":{"text/plain":["<1000x10 sparse matrix of type '<class 'numpy.float64'>'\n","\twith 1000 stored elements in Compressed Sparse Row format>"]},"metadata":{"tags":[]},"execution_count":21}]},{"metadata":{"id":"faUa5jRKTTVv","colab_type":"code","colab":{"base_uri":"https://localhost:8080/","height":34},"outputId":"c8a3ccb0-5069-4cbe-c237-b7334aa40b69","executionInfo":{"status":"ok","timestamp":1551679447801,"user_tz":-480,"elapsed":624,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}}},"cell_type":"code","source":["LinearR_.predict(line_binned).shape"],"execution_count":22,"outputs":[{"output_type":"execute_result","data":{"text/plain":["(1000,)"]},"metadata":{"tags":[]},"execution_count":22}]},{"metadata":{"id":"sDTlM_HVVWPA","colab_type":"code","outputId":"3114e3ab-9125-4534-93c1-211a20724126","colab":{"base_uri":"https://localhost:8080/","height":68},"executionInfo":{"status":"ok","timestamp":1551679451216,"user_tz":-480,"elapsed":627,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}}},"cell_type":"code","source":["enc.bin_edges_[0] #分出的箱子的上限和下限"],"execution_count":23,"outputs":[{"output_type":"execute_result","data":{"text/plain":["array([-2.9668673 , -2.55299973, -2.0639171 , -1.3945301 , -1.02797432,\n","       -0.21514527,  0.44239288,  1.14612193,  1.63693428,  2.32784522,\n","        2.92132162])"]},"metadata":{"tags":[]},"execution_count":23}]},{"metadata":{"id":"EZcv9amDVWPC","colab_type":"code","outputId":"ef52805e-2890-4a00-fda0-a882c530fe64","colab":{"base_uri":"https://localhost:8080/","height":368},"executionInfo":{"status":"ok","timestamp":1551679468399,"user_tz":-480,"elapsed":609,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}}},"cell_type":"code","source":["[*plt.gca().get_ylim()]"],"execution_count":24,"outputs":[{"output_type":"execute_result","data":{"text/plain":["[0.0, 1.0]"]},"metadata":{"tags":[]},"execution_count":24},{"output_type":"display_data","data":{"image/png":"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\nPT09ezw5OZlGo5EkWbZsWZYvX54LLrggixcvzuWXX559+/ad9BAAwLFaBrqvry87duxIkoyPj6fZ\nbKarqytJ0tnZmVWrVuWdd96ZPb969er6pgWABaLlJe61a9emt7c3g4OD6ejoyNDQUEZHR9Pd3Z1N\nmzZl69atueeee1JVVS666KLZHxgDAE5dR3X0TeU2cb+jXu4ptYc918+O62fH7VHLPWgAoP0EGgAK\nJNAAUCCBBoACCTQAFEigAaBAAg0ABRJoACiQQANAgQQaAAok0ABQIIEGgAIJNAAUSKABoEACDQAF\nEmgAKJBAA0CBBBoACiTQAFAggQaAAgk0ABRIoAGgQAINAAUSaAAokEADQIEEGgAKJNAAUCCBBoAC\nCTQAFEigAaBAAg0ABRJoACiQQANAgQQaAAok0ABQIIEGgAIJNAAUSKABoEACDQAFEmgAKJBAA0CB\nBBoACiTQAFAggQaAAgk0ABRIoAGgQAINAAUSaAAokEADQIEEGgAKJNAAUKATCvTIyEgGBgYyODiY\nN95447iveeSRR3LDDTf8V4cDgIWqZaB3796diYmJbN++PcPDwxkeHv7Ga/bv35/XXnutlgEBYCFq\nGeixsbH09/cnSdasWZPDhw9nZmbmmNds27Ytd911Vz0TAsAC1NnqBdPT0+nt7Z097unpydTUVLq6\nupIko6Ojueyyy7JixYoTftNGo/sURuVk2HF72HP97Lh+dlymloH+v6qqmv31J598ktHR0fzxj3/M\nwYMHT/hrTE19erJvy0loNLrtuA3suX52XD87bo9T+Sao5SXuZrOZ6enp2ePJyck0Go0kya5du3Lo\n0KFcd911ueOOOzI+Pp6RkZGTHgIAOFbLQPf19WXHjh1JkvHx8TSbzdnL21dddVVefPHFPP/883ns\nscfS29ubrVu31jsxACwALS9xr127Nr29vRkcHExHR0eGhoYyOjqa7u7ubNq0qR0zAsCC01EdfVO5\nTdzvqJd7Su1hz/Wz4/rZcXvUcg8aAGg/gQaAAgk0ABRIoAGgQAINAAUSaAAokEADQIEEGgAKJNAA\nUCCBBoACCTQAFEigAaBAAg0ABRJoACiQQANAgQQaAAok0ABQIIEGgAIJNAAUSKABoEACDQAFEmgA\nKJBAA0CBBBoACiTQAFAggQaAAgk0ABRIoAGgQAINAAUSaAAokEADQIEEGgAKJNAAUCCBBoACCTQA\nFEigAaBAAg0ABRJoACiQQANAgQQaAAok0ABQIIEGgAIJNAAUSKABoEACDQAFEmgAKJBAA0CBBBoA\nCiTQAFAggQaAAnWeyItGRkayZ8+edHR0ZOvWrbn44otnz+3atSu/+93vsmjRoqxevTrDw8NZtEj3\nAeDbaFnS3bt3Z2JiItu3b8/w8HCGh4ePOX/ffffl97//fZ577rl89tln+dvf/lbbsACwULQM9NjY\nWPr7+5Mka9asyeHDhzMzMzN7fnR0NOedd16SpKenJx9//HFNowLAwtEy0NPT01m2bNnscU9PT6am\npmaPu7q6kiSTk5PZuXNnNmzYUMOYALCwnNA96KNVVfWN3/voo49y2223ZWho6JiY/38aje6TfVtO\nkh23hz3Xz47rZ8dlahnoZrOZ6enp2ePJyck0Go3Z45mZmdxyyy258847s379+hN606mpT09hVE5U\no9Ftx21gz/Wz4/rZcXucyjdBLS9x9/X1ZceOHUmS8fHxNJvN2cvaSbJt27bceOONueKKK076zQGA\n42v5CXrt2rXp7e3N4OBgOjo6MjQ0lNHR0XR3d2f9+vX505/+lImJibzwwgtJkquvvjoDAwO1Dw4A\nZ7KO6ng3lWvmckq9XLJqD3uunx3Xz47bo5ZL3ABA+wk0ABRIoAGgQAINAAUSaAAokEADQIEEGgAK\nJNAAUCCBBoACCTQAFEigAaBAAg0ABRJoACiQQANAgQQaAAok0ABQIIEGgAIJNAAUSKABoEACDQAF\nEmgAKJBAA0CBBBoACiTQAFAggQaAAgk0ABRIoAGgQAINAAUSaAAokEADQIEEGgAKJNAAUCCBBoAC\nCTQAFEigAaBAAg0ABRJoACiQQANAgQQaAAok0ABQIIEGgAIJNAAUSKABoEACDQAFEmgAKJBAA0CB\nBBoACiTQAFAggQaAAgk0ABRIoAGgQCcU6JGRkQwMDGRwcDBvvPHGMedeffXVXHPNNRkYGMjjjz9e\ny5AAsNC0DPTu3bszMTGR7du3Z3h4OMPDw8ecf+CBB/Loo4/m2Wefzc6dO7N///7ahgWAhaJloMfG\nxtLf358kWbNmTQ4fPpyZmZkkybvvvpulS5fm/PPPz6JFi7Jhw4aMjY3VOzEALAAtAz09PZ1ly5bN\nHvf09GRqaipJMjU1lZ6enuOeAwBOXefJ/oGqqr71mzYa3d/6azA3O24Pe66fHdfPjsvU8hN0s9nM\n9PT07PHk5GQajcZxzx08eDDNZrOGMQFgYWkZ6L6+vuzYsSNJMj4+nmazma6uriTJypUrMzMzk/fe\ney9HjhzJyy+/nL6+vnonBoAFoKM6gWvWDz/8cP7xj3+ko6MjQ0NDefPNN9Pd3Z1Nmzbltddey8MP\nP5wk+dGPfpSbb7659qEB4Ex3QoEGANrLk8QAoEACDQAFqjXQHhFav7l2vGvXrlx77bUZHBzMvffe\nm6+//nqepjy9zbXj//XII4/khhtuaPNkZ465dvzhhx9m8+bNueaaa3LffffN04Rnhrn2/Mwzz2Rg\nYCCbN2/+xhMjOXFvv/12+vv78/TTT3/j3El3r6rJ3//+9+rWW2+tqqqq9u/fX1177bXHnP/xj39c\nffDBB9W///3vavPmzdW+ffvqGuWM1WrHmzZtqj788MOqqqrqZz/7WfXKK6+0fcbTXasdV1VV7du3\nrxoYGKiuv/76do93Rmi145///OfVX/7yl6qqqur++++v3n///bbPeCaYa8+ffvppdeWVV1ZfffVV\nVVVVddNNN1X//Oc/52XO09lnn31WXX/99dWvf/3r6qmnnvrG+ZPtXm2foD0itH5z7ThJRkdHc955\n5yX5z1PePv7443mZ83TWasdJsm3bttx1113zMd4ZYa4df/3113n99dezcePGJMnQ0FCWL18+b7Oe\nzuba85IlS7JkyZJ8/vnnOXLkSL744ossXbp0Psc9LZ111ll58sknj/s8kFPpXm2B9ojQ+s214ySz\n/159cnIyO3fuzIYNG9o+4+mu1Y5HR0dz2WWXZcWKFfMx3hlhrh0fOnQo5557bh588MFs3rw5jzzy\nyHyNedqba89nn312br/99vT39+fKK6/MJZdcktWrV8/XqKetzs7OnHPOOcc9dyrda9sPiVX+NVft\njrfjjz76KLfddluGhoaO+cvJqTl6x5988klGR0dz0003zeNEZ56jd1xVVQ4ePJgtW7bk6aefzptv\nvplXXnll/oY7gxy955mZmTzxxBN56aWX8te//jV79uzJW2+9NY/TkdQYaI8Ird9cO07+85fulltu\nyZ133pn169fPx4invbl2vGvXrhw6dCjXXXdd7rjjjoyPj2dkZGS+Rj1tzbXjZcuWZfny5bnggguy\nePHiXH755dm3b998jXpam2vPBw4cyKpVq9LT05Ozzjor69aty969e+dr1DPSqXSvtkB7RGj95tpx\n8p97ozfeeGOuuOKK+RrxtDfXjq+66qq8+OKLef755/PYY4+lt7c3W7dunc9xT0tz7bizszOrVq3K\nO++8M3vepddTM9eeV6xYkQMHDuTLL79MkuzduzcXXnjhfI16RjqV7tX6JDGPCK3f/7fj9evX5wc/\n+EEuvfTS2ddeffXVGRgYmMdpT09z/Xf8v957773ce++9eeqpp+Zx0tPXXDuemJjIPffck6qqctFF\nF+X+++/PokUe4XAq5trzc889l9HR0SxevDiXXnppfvnLX873uKedvXv35qGHHsr777+fzs7OfOc7\n38nGjRuzcuXKU+qeR30CQIF8GwoABRJoACiQQANAgQQaAAok0ABQIIEGgAIJNAAUSKABoED/A1Ls\njBpYUMuoAAAAAElFTkSuQmCC\n","text/plain":["<Figure size 576x396 with 1 Axes>"]},"metadata":{"tags":[]}}]},{"metadata":{"id":"6lZQJr9wVWPD","colab_type":"code","outputId":"ab9c5552-be5d-4917-ba66-2ef5f2ed05df","colab":{"base_uri":"https://localhost:8080/","height":293},"executionInfo":{"status":"ok","timestamp":1551679482191,"user_tz":-480,"elapsed":1247,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}}},"cell_type":"code","source":["#准备数据\n","enc = KBinsDiscretizer(n_bins=10,encode=\"onehot\")\n","X_binned = enc.fit_transform(X)\n","line_binned = enc.transform(line)\n","\n","#将两张图像绘制在一起，布置画布\n","fig, (ax1, ax2) = plt.subplots(ncols=2\n","                               , sharey=True #让两张图共享y轴上的刻度\n","                               , figsize=(10, 4))\n","\n","#在图1中布置在原始数据上建模的结果\n","ax1.plot(line, LinearR.predict(line), linewidth=2, color='green',\n","         label=\"linear regression\")\n","ax1.plot(line, TreeR.predict(line), linewidth=2, color='red',\n","         label=\"decision tree\")\n","ax1.plot(X[:, 0], y, 'o', c='k')\n","ax1.legend(loc=\"best\")\n","ax1.set_ylabel(\"Regression output\")\n","ax1.set_xlabel(\"Input feature\")\n","ax1.set_title(\"Result before discretization\")\n","\n","#使用分箱数据进行建模\n","LinearR_ = LinearRegression().fit(X_binned, y)\n","TreeR_ = DecisionTreeRegressor(random_state=0).fit(X_binned, y)\n","\n","#进行预测，在图2中布置在分箱数据上进行预测的结果\n","ax2.plot(line #横坐标\n","         , LinearR_.predict(line_binned) #分箱后的特征矩阵的结果\n","         , linewidth=2\n","         , color='green'\n","         , linestyle='-'\n","         , label='linear regression')\n","\n","ax2.plot(line, TreeR_.predict(line_binned), linewidth=2, color='red',\n","         linestyle=':', label='decision tree')\n","\n","#绘制和箱宽一致的竖线\n","ax2.vlines(enc.bin_edges_[0] #x轴\n","           , *plt.gca().get_ylim() #y轴的上限和下限\n","           , linewidth=1\n","           , alpha=.2)\n","\n","#将原始数据分布放置在图像上\n","ax2.plot(X[:, 0], y, 'o', c='k')\n","\n","#其他绘图设定\n","ax2.legend(loc=\"best\")\n","ax2.set_xlabel(\"Input feature\")\n","ax2.set_title(\"Result after discretization\")\n","plt.tight_layout()\n","plt.show()"],"execution_count":25,"outputs":[{"output_type":"display_data","data":{"image/png":"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\n","text/plain":["<Figure size 720x288 with 2 Axes>"]},"metadata":{"tags":[]}}]},{"metadata":{"id":"HpAoB8XkTrfY","colab_type":"text"},"cell_type":"markdown","source":["### 箱子数如何影响模型的结果"]},{"metadata":{"id":"QIGlNOlZVWPG","colab_type":"code","outputId":"2a8b2f43-5382-482f-be47-97d22f23f5bd","colab":{"base_uri":"https://localhost:8080/","height":310},"executionInfo":{"status":"ok","timestamp":1551679495338,"user_tz":-480,"elapsed":1397,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}}},"cell_type":"code","source":["enc = KBinsDiscretizer(n_bins=15,encode=\"onehot\")\n","X_binned = enc.fit_transform(X)\n","line_binned = enc.transform(line)\n","\n","fig, ax2 = plt.subplots(1,figsize=(5,4))\n","\n","LinearR_ = LinearRegression().fit(X_binned, y)\n","print(LinearR_.score(line_binned,np.sin(line)))\n","TreeR_ = DecisionTreeRegressor(random_state=0).fit(X_binned, y)\n","\n","ax2.plot(line #横坐标\n","         , LinearR_.predict(line_binned) #分箱后的特征矩阵的结果\n","         , linewidth=2\n","         , color='green'\n","         , linestyle='-'\n","         , label='linear regression')\n","ax2.plot(line, TreeR_.predict(line_binned), linewidth=2, color='red',\n","         linestyle=':', label='decision tree')\n","ax2.vlines(enc.bin_edges_[0], *plt.gca().get_ylim(), linewidth=1, alpha=.2)\n","ax2.plot(X[:, 0], y, 'o', c='k')\n","ax2.legend(loc=\"best\")\n","ax2.set_xlabel(\"Input feature\")\n","ax2.set_title(\"Result after discretization\")\n","plt.tight_layout()\n","plt.show()"],"execution_count":26,"outputs":[{"output_type":"stream","text":["0.9590978882491229\n"],"name":"stdout"},{"output_type":"display_data","data":{"image/png":"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\n","text/plain":["<Figure size 360x288 with 1 Axes>"]},"metadata":{"tags":[]}}]},{"metadata":{"id":"CL26G0HDTwQG","colab_type":"text"},"cell_type":"markdown","source":["### 怎样选取最优的箱子"]},{"metadata":{"id":"S2KGWQgkVWPH","colab_type":"code","colab":{}},"cell_type":"code","source":["from sklearn.model_selection import cross_val_score as CVS\n","import numpy as np"],"execution_count":0,"outputs":[]},{"metadata":{"id":"qobonwnAVWPK","colab_type":"code","outputId":"04d3cb8f-9e89-465e-9c32-1b1e5774bf22","colab":{"base_uri":"https://localhost:8080/","height":320},"executionInfo":{"status":"ok","timestamp":1551679568692,"user_tz":-480,"elapsed":1596,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}}},"cell_type":"code","source":["pred,score,var = [], [], []\n","binsrange = [2,5,10,15,20,30]\n","for i in binsrange:\n","    #实例化分箱类\n","    enc = KBinsDiscretizer(n_bins=i,encode=\"onehot\")\n","    #转换数据\n","    X_binned = enc.fit_transform(X)\n","    line_binned = enc.transform(line)\n","    #建立模型\n","    LinearR_ = LinearRegression()\n","    #全数据集上的交叉验证\n","    cvresult = CVS(LinearR_,X_binned,y,cv=5)\n","    score.append(cvresult.mean())\n","    var.append(cvresult.var())\n","    #测试数据集上的打分结果\n","    pred.append(LinearR_.fit(X_binned,y).score(line_binned,np.sin(line)))\n","#绘制图像\n","plt.figure(figsize=(6,5))\n","plt.plot(binsrange,pred,c=\"orange\",label=\"test\")\n","plt.plot(binsrange,score,c=\"k\",label=\"full data\")\n","plt.plot(binsrange,score+np.array(var)*0.5,c=\"red\",linestyle=\"--\",label = \"var\")\n","plt.plot(binsrange,score-np.array(var)*0.5,c=\"red\",linestyle=\"--\")\n","plt.legend()\n","plt.show()"],"execution_count":28,"outputs":[{"output_type":"display_data","data":{"image/png":"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\nFOTeQbNqUjkAAAAASUVORK5CYII=\n","text/plain":["<Figure size 432x360 with 1 Axes>"]},"metadata":{"tags":[]}}]},{"metadata":{"id":"h9eHL7C-T3Gf","colab_type":"text"},"cell_type":"markdown","source":["## 多项式回归PolynomialFeatures"]},{"metadata":{"id":"EdPiIMGQT53z","colab_type":"text"},"cell_type":"markdown","source":["### 多项式对数据做了什么"]},{"metadata":{"id":"9vytBxfeVWPM","colab_type":"code","colab":{}},"cell_type":"code","source":["from sklearn.preprocessing import PolynomialFeatures\n","import numpy as np"],"execution_count":0,"outputs":[]},{"metadata":{"id":"nO7jHvrDVWPO","colab_type":"code","outputId":"4a52eafd-a111-4b18-eddb-3e3777f5a204","colab":{"base_uri":"https://localhost:8080/","height":68},"executionInfo":{"status":"ok","timestamp":1551679603053,"user_tz":-480,"elapsed":686,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}}},"cell_type":"code","source":["#如果原始数据是一维的\n","X = np.arange(1,4).reshape(-1,1)\n","X"],"execution_count":30,"outputs":[{"output_type":"execute_result","data":{"text/plain":["array([[1],\n","       [2],\n","       [3]])"]},"metadata":{"tags":[]},"execution_count":30}]},{"metadata":{"id":"enVUrfStVWPQ","colab_type":"code","colab":{}},"cell_type":"code","source":["#二次多项式，参数degree控制多项式的次方\n","poly = PolynomialFeatures(degree=2)"],"execution_count":0,"outputs":[]},{"metadata":{"id":"CtozrG-LVWPR","colab_type":"code","colab":{}},"cell_type":"code","source":["#接口transform直接调用\n","X_ = poly.fit_transform(X)"],"execution_count":0,"outputs":[]},{"metadata":{"id":"YtKrgmh0VWPT","colab_type":"code","outputId":"9d85c86c-95e4-4724-b325-7a56d4ba289a","colab":{"base_uri":"https://localhost:8080/","height":68},"executionInfo":{"status":"ok","timestamp":1551679609507,"user_tz":-480,"elapsed":606,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}}},"cell_type":"code","source":["X_"],"execution_count":33,"outputs":[{"output_type":"execute_result","data":{"text/plain":["array([[1., 1., 1.],\n","       [1., 2., 4.],\n","       [1., 3., 9.]])"]},"metadata":{"tags":[]},"execution_count":33}]},{"metadata":{"id":"y5pjid4lVWPW","colab_type":"code","outputId":"3c909e30-1953-4ae0-a8fc-44b0479ce0c4","colab":{"base_uri":"https://localhost:8080/","height":34},"executionInfo":{"status":"ok","timestamp":1551679612603,"user_tz":-480,"elapsed":847,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}}},"cell_type":"code","source":["X_.shape"],"execution_count":34,"outputs":[{"output_type":"execute_result","data":{"text/plain":["(3, 3)"]},"metadata":{"tags":[]},"execution_count":34}]},{"metadata":{"id":"pgd-HI6CVWPY","colab_type":"code","outputId":"0881ba7c-5e95-409b-f619-af928bac27f0","colab":{"base_uri":"https://localhost:8080/","height":68},"executionInfo":{"status":"ok","timestamp":1551679614959,"user_tz":-480,"elapsed":1132,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}}},"cell_type":"code","source":["#三次多项式\n","PolynomialFeatures(degree=3).fit_transform(X)"],"execution_count":35,"outputs":[{"output_type":"execute_result","data":{"text/plain":["array([[ 1.,  1.,  1.,  1.],\n","       [ 1.,  2.,  4.,  8.],\n","       [ 1.,  3.,  9., 27.]])"]},"metadata":{"tags":[]},"execution_count":35}]},{"metadata":{"id":"0SMMUFQiVWPa","colab_type":"code","outputId":"a55bb9e5-268e-4b66-c02e-b252028811c8","colab":{"base_uri":"https://localhost:8080/","height":68},"executionInfo":{"status":"ok","timestamp":1551679619272,"user_tz":-480,"elapsed":601,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}}},"cell_type":"code","source":["#三次多项式，不带与截距项相乘的x0\n","PolynomialFeatures(degree=3,include_bias=False).fit_transform(X)"],"execution_count":36,"outputs":[{"output_type":"execute_result","data":{"text/plain":["array([[ 1.,  1.,  1.],\n","       [ 2.,  4.,  8.],\n","       [ 3.,  9., 27.]])"]},"metadata":{"tags":[]},"execution_count":36}]},{"metadata":{"id":"3hCK0hR2VWPd","colab_type":"code","colab":{}},"cell_type":"code","source":["#为什么我们会希望不生成与截距相乘的x0呢？\n","#对于多项式回归来说，我们已经为线性回归准备好了x0，但是线性回归并不知道\n","xxx = PolynomialFeatures(degree=3).fit_transform(X)"],"execution_count":0,"outputs":[]},{"metadata":{"id":"uD0iUTuAVWPe","colab_type":"code","outputId":"9584cc47-cbec-4a22-83db-f39daa28fa6c","colab":{"base_uri":"https://localhost:8080/","height":34},"executionInfo":{"status":"ok","timestamp":1551679633280,"user_tz":-480,"elapsed":934,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}}},"cell_type":"code","source":["xxx.shape"],"execution_count":38,"outputs":[{"output_type":"execute_result","data":{"text/plain":["(3, 4)"]},"metadata":{"tags":[]},"execution_count":38}]},{"metadata":{"id":"qaxtjw5JVWPh","colab_type":"code","outputId":"181b1831-2344-4117-cf93-f950c207e493","colab":{"base_uri":"https://localhost:8080/","height":34},"executionInfo":{"status":"ok","timestamp":1551679641656,"user_tz":-480,"elapsed":821,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}}},"cell_type":"code","source":["rnd = np.random.RandomState(42) #设置随机数种子\n","y = rnd.randn(3)\n","\n","y"],"execution_count":39,"outputs":[{"output_type":"execute_result","data":{"text/plain":["array([ 0.49671415, -0.1382643 ,  0.64768854])"]},"metadata":{"tags":[]},"execution_count":39}]},{"metadata":{"id":"RvRJrQQ5VWPm","colab_type":"code","outputId":"72ef435e-275a-4216-9f11-060d5508da99","colab":{"base_uri":"https://localhost:8080/","height":34},"executionInfo":{"status":"ok","timestamp":1551679644470,"user_tz":-480,"elapsed":857,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}}},"cell_type":"code","source":["#生成了多少个系数？\n","LinearRegression().fit(xxx,y).coef_"],"execution_count":40,"outputs":[{"output_type":"execute_result","data":{"text/plain":["array([ 3.08086889e-15, -3.51045297e-01, -6.06987134e-01,  2.19575463e-01])"]},"metadata":{"tags":[]},"execution_count":40}]},{"metadata":{"id":"4xDlVdBCVWPq","colab_type":"code","outputId":"e45a967c-9a6b-4144-bf71-8b22edb3729d","colab":{"base_uri":"https://localhost:8080/","height":34},"executionInfo":{"status":"ok","timestamp":1551679647759,"user_tz":-480,"elapsed":637,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}}},"cell_type":"code","source":["#查看截距\n","LinearRegression().fit(xxx,y).intercept_"],"execution_count":41,"outputs":[{"output_type":"execute_result","data":{"text/plain":["1.2351711202036884"]},"metadata":{"tags":[]},"execution_count":41}]},{"metadata":{"id":"3enuS6OjVWPr","colab_type":"code","outputId":"60572f6f-4950-4b62-bc0e-2819adac5a58","colab":{"base_uri":"https://localhost:8080/","height":34},"executionInfo":{"status":"ok","timestamp":1551679667022,"user_tz":-480,"elapsed":641,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}}},"cell_type":"code","source":["#发现问题了吗？线性回归并没有把多项式生成的x0当作是截距项\n","#所以我们可以选择：关闭多项式回归中的include_bias\n","#也可以选择：关闭线性回归中的fit_intercept\n","\n","#生成了多少个系数？\n","LinearRegression(fit_intercept=False).fit(xxx,y).coef_"],"execution_count":42,"outputs":[{"output_type":"execute_result","data":{"text/plain":["array([ 1.00596411,  0.06916756, -0.83619415,  0.25777663])"]},"metadata":{"tags":[]},"execution_count":42}]},{"metadata":{"id":"b6ou5nf9VWPs","colab_type":"code","outputId":"96cdd8aa-531d-43d8-b232-97fa1f20c318","colab":{"base_uri":"https://localhost:8080/","height":34},"executionInfo":{"status":"ok","timestamp":1551679671255,"user_tz":-480,"elapsed":598,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}}},"cell_type":"code","source":["#查看截距\n","LinearRegression(fit_intercept=False).fit(xxx,y).intercept_"],"execution_count":43,"outputs":[{"output_type":"execute_result","data":{"text/plain":["0.0"]},"metadata":{"tags":[]},"execution_count":43}]},{"metadata":{"id":"RY79o0HLVWPt","colab_type":"code","outputId":"437786d4-a1f2-4cf4-d3dd-7a888dbc730e","colab":{"base_uri":"https://localhost:8080/","height":68},"executionInfo":{"status":"ok","timestamp":1551679675780,"user_tz":-480,"elapsed":698,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}}},"cell_type":"code","source":["X = np.arange(6).reshape(3, 2)\n","X"],"execution_count":44,"outputs":[{"output_type":"execute_result","data":{"text/plain":["array([[0, 1],\n","       [2, 3],\n","       [4, 5]])"]},"metadata":{"tags":[]},"execution_count":44}]},{"metadata":{"id":"QD3UfQY2VWPv","colab_type":"code","outputId":"a425ea06-c2d6-4756-8ed0-b5f7253d23f9","colab":{"base_uri":"https://localhost:8080/","height":68},"executionInfo":{"status":"ok","timestamp":1551679678345,"user_tz":-480,"elapsed":943,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}}},"cell_type":"code","source":["#尝试二次多项式\n","PolynomialFeatures(degree=2).fit_transform(X)"],"execution_count":45,"outputs":[{"output_type":"execute_result","data":{"text/plain":["array([[ 1.,  0.,  1.,  0.,  0.,  1.],\n","       [ 1.,  2.,  3.,  4.,  6.,  9.],\n","       [ 1.,  4.,  5., 16., 20., 25.]])"]},"metadata":{"tags":[]},"execution_count":45}]},{"metadata":{"id":"ZoYPPzHRVWPw","colab_type":"code","outputId":"e7bf8338-dac1-4907-e53c-acb1477c7408","colab":{"base_uri":"https://localhost:8080/","height":68},"executionInfo":{"status":"ok","timestamp":1551679681152,"user_tz":-480,"elapsed":780,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}}},"cell_type":"code","source":["#尝试三次多项式\n","PolynomialFeatures(degree=3).fit_transform(X)"],"execution_count":46,"outputs":[{"output_type":"execute_result","data":{"text/plain":["array([[  1.,   0.,   1.,   0.,   0.,   1.,   0.,   0.,   0.,   1.],\n","       [  1.,   2.,   3.,   4.,   6.,   9.,   8.,  12.,  18.,  27.],\n","       [  1.,   4.,   5.,  16.,  20.,  25.,  64.,  80., 100., 125.]])"]},"metadata":{"tags":[]},"execution_count":46}]},{"metadata":{"id":"0-nyIPewVWPz","colab_type":"code","outputId":"26d2e24a-505e-46f3-de4f-998722203650","colab":{"base_uri":"https://localhost:8080/","height":68},"executionInfo":{"status":"ok","timestamp":1551679684996,"user_tz":-480,"elapsed":1302,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}}},"cell_type":"code","source":["PolynomialFeatures(degree=2).fit_transform(X)"],"execution_count":47,"outputs":[{"output_type":"execute_result","data":{"text/plain":["array([[ 1.,  0.,  1.,  0.,  0.,  1.],\n","       [ 1.,  2.,  3.,  4.,  6.,  9.],\n","       [ 1.,  4.,  5., 16., 20., 25.]])"]},"metadata":{"tags":[]},"execution_count":47}]},{"metadata":{"id":"trmWVvFBVWP0","colab_type":"code","outputId":"a2f6e83c-328f-4979-b2c1-7e1b08331721","colab":{"base_uri":"https://localhost:8080/","height":68},"executionInfo":{"status":"ok","timestamp":1551679691504,"user_tz":-480,"elapsed":624,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}}},"cell_type":"code","source":["PolynomialFeatures(degree=2,interaction_only=True).fit_transform(X)\n","#对比之下，当interaction_only为True的时候，只生成交互项"],"execution_count":48,"outputs":[{"output_type":"execute_result","data":{"text/plain":["array([[ 1.,  0.,  1.,  0.],\n","       [ 1.,  2.,  3.,  6.],\n","       [ 1.,  4.,  5., 20.]])"]},"metadata":{"tags":[]},"execution_count":48}]},{"metadata":{"id":"U11Jqv1gVWP2","colab_type":"code","outputId":"9ee177b7-de44-4621-be31-a9a2e078e2a6","colab":{"base_uri":"https://localhost:8080/","height":51},"executionInfo":{"status":"ok","timestamp":1551679697077,"user_tz":-480,"elapsed":645,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}}},"cell_type":"code","source":["#更高维度的原始特征矩阵\n","X = np.arange(20).reshape(2, 10)\n","X"],"execution_count":49,"outputs":[{"output_type":"execute_result","data":{"text/plain":["array([[ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9],\n","       [10, 11, 12, 13, 14, 15, 16, 17, 18, 19]])"]},"metadata":{"tags":[]},"execution_count":49}]},{"metadata":{"id":"v5jSbinXVWP3","colab_type":"code","outputId":"d99a891d-04da-43e5-fb4b-0414d5c894fa","colab":{"base_uri":"https://localhost:8080/","height":34},"executionInfo":{"status":"ok","timestamp":1551679699662,"user_tz":-480,"elapsed":611,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}}},"cell_type":"code","source":["PolynomialFeatures(degree=2).fit_transform(X).shape"],"execution_count":50,"outputs":[{"output_type":"execute_result","data":{"text/plain":["(2, 66)"]},"metadata":{"tags":[]},"execution_count":50}]},{"metadata":{"id":"fDx0Fl4dVWP5","colab_type":"code","outputId":"6182c90b-41ad-4f28-9a8c-e54e8f941e73","colab":{"base_uri":"https://localhost:8080/","height":34},"executionInfo":{"status":"ok","timestamp":1551679702824,"user_tz":-480,"elapsed":694,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}}},"cell_type":"code","source":["PolynomialFeatures(degree=3).fit_transform(X).shape"],"execution_count":51,"outputs":[{"output_type":"execute_result","data":{"text/plain":["(2, 286)"]},"metadata":{"tags":[]},"execution_count":51}]},{"metadata":{"id":"MCgIsL90VWP8","colab_type":"code","outputId":"1dc179eb-3a86-4416-c9ad-466cb927e85a","colab":{"base_uri":"https://localhost:8080/","height":34},"executionInfo":{"status":"ok","timestamp":1551679934780,"user_tz":-480,"elapsed":2034,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}}},"cell_type":"code","source":["X_ = PolynomialFeatures(degree=10).fit_transform(X)\n","\n","X_.shape"],"execution_count":53,"outputs":[{"output_type":"execute_result","data":{"text/plain":["(2, 184756)"]},"metadata":{"tags":[]},"execution_count":53}]},{"metadata":{"id":"oxVcAMo_UdCP","colab_type":"text"},"cell_type":"markdown","source":["### 多项式回归处理非线性问题"]},{"metadata":{"id":"QCrC8K9CVWP9","colab_type":"code","colab":{}},"cell_type":"code","source":["from sklearn.preprocessing import PolynomialFeatures as PF\n","from sklearn.linear_model import LinearRegression\n","import numpy as np\n","\n","rnd = np.random.RandomState(42) #设置随机数种子\n","X = rnd.uniform(-3, 3, size=100)\n","y = np.sin(X) + rnd.normal(size=len(X)) / 3\n","\n","#将X升维，准备好放入sklearn中\n","X = X.reshape(-1,1)\n","\n","#创建测试数据，均匀分布在训练集X的取值范围内的一千个点\n","line = np.linspace(-3, 3, 1000, endpoint=False).reshape(-1, 1)"],"execution_count":0,"outputs":[]},{"metadata":{"id":"cwYeVvg5VWP-","colab_type":"code","outputId":"6736e189-07f9-4421-bff6-d11855d5c8c3","colab":{"base_uri":"https://localhost:8080/","height":34},"executionInfo":{"status":"ok","timestamp":1551679941641,"user_tz":-480,"elapsed":574,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}}},"cell_type":"code","source":["#原始特征矩阵的拟合结果\n","LinearR = LinearRegression().fit(X, y)\n","#对训练数据的拟合\n","LinearR.score(X,y)"],"execution_count":55,"outputs":[{"output_type":"execute_result","data":{"text/plain":["0.5361526059318595"]},"metadata":{"tags":[]},"execution_count":55}]},{"metadata":{"id":"U6QzhYWEVWP_","colab_type":"code","outputId":"5ece0e93-c2a6-4c48-a156-cbeecb4b0e28","colab":{"base_uri":"https://localhost:8080/","height":34},"executionInfo":{"status":"ok","timestamp":1551679948989,"user_tz":-480,"elapsed":606,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}}},"cell_type":"code","source":["#对测试数据的拟合\n","LinearR.score(line,np.sin(line))"],"execution_count":56,"outputs":[{"output_type":"execute_result","data":{"text/plain":["0.6800102369793312"]},"metadata":{"tags":[]},"execution_count":56}]},{"metadata":{"id":"ibShLDrfVthA","colab_type":"code","colab":{"base_uri":"https://localhost:8080/","height":34},"outputId":"690e3cc1-5d27-4809-b3ca-1a3dd12cb961","executionInfo":{"status":"ok","timestamp":1551680077403,"user_tz":-480,"elapsed":676,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}}},"cell_type":"code","source":["LinearR.coef_"],"execution_count":62,"outputs":[{"output_type":"execute_result","data":{"text/plain":["array([0.31629745])"]},"metadata":{"tags":[]},"execution_count":62}]},{"metadata":{"id":"ZMm8WoyrVWP_","colab_type":"code","outputId":"a63783a6-6386-4973-d98c-411f7b5d4fc5","colab":{"base_uri":"https://localhost:8080/","height":34},"executionInfo":{"status":"ok","timestamp":1551680223819,"user_tz":-480,"elapsed":646,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}}},"cell_type":"code","source":["#多项式拟合，设定高次项\n","d=5\n","\n","#进行高次项转换\n","poly = PF(degree=d)\n","X_ = poly.fit_transform(X)\n","line_ = poly.transform(line)\n","\n","#训练数据的拟合\n","LinearR_ = LinearRegression().fit(X_, y)\n","LinearR_.score(X_,y)"],"execution_count":69,"outputs":[{"output_type":"execute_result","data":{"text/plain":["0.8561679370344799"]},"metadata":{"tags":[]},"execution_count":69}]},{"metadata":{"id":"AQvgrorEV2Wg","colab_type":"code","colab":{"base_uri":"https://localhost:8080/","height":1717},"outputId":"edfc4d79-aadb-471a-ac23-af09fbc20cac","executionInfo":{"status":"ok","timestamp":1551680214886,"user_tz":-480,"elapsed":1188,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}}},"cell_type":"code","source":["X_[:,1].reshape(-1,1)-X"],"execution_count":68,"outputs":[{"output_type":"execute_result","data":{"text/plain":["array([[0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.],\n","       [0.]])"]},"metadata":{"tags":[]},"execution_count":68}]},{"metadata":{"id":"CNkJSZ1BVmV2","colab_type":"code","colab":{"base_uri":"https://localhost:8080/","height":51},"outputId":"6602a53b-991b-4257-fe3e-986a6f403984","executionInfo":{"status":"ok","timestamp":1551680230158,"user_tz":-480,"elapsed":901,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}}},"cell_type":"code","source":["LinearR_.coef_"],"execution_count":70,"outputs":[{"output_type":"execute_result","data":{"text/plain":["array([ 0.        ,  0.96898826,  0.0636851 , -0.1461538 , -0.0055159 ,\n","        0.00414052])"]},"metadata":{"tags":[]},"execution_count":70}]},{"metadata":{"id":"0s5ewO8fVWQB","colab_type":"code","outputId":"c0cdebfc-71f1-4204-adc3-9679ff1906a7","colab":{"base_uri":"https://localhost:8080/","height":34},"executionInfo":{"status":"ok","timestamp":1551679960710,"user_tz":-480,"elapsed":642,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}}},"cell_type":"code","source":["#测试数据的拟合\n","LinearR_.score(line_,np.sin(line))"],"execution_count":58,"outputs":[{"output_type":"execute_result","data":{"text/plain":["0.9868904451787955"]},"metadata":{"tags":[]},"execution_count":58}]},{"metadata":{"id":"COJaec5iWxAv","colab_type":"text"},"cell_type":"markdown","source":["不生成截距项"]},{"metadata":{"id":"Q0aiRKAMWa5I","colab_type":"code","colab":{"base_uri":"https://localhost:8080/","height":34},"outputId":"ce53b3a5-38ba-4d2f-a1ac-f957dbad27c8","executionInfo":{"status":"ok","timestamp":1551680305641,"user_tz":-480,"elapsed":644,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}}},"cell_type":"code","source":["#多项式拟合，设定高次项\n","d=5\n","\n","#进行高次项转换\n","poly2 = PF(degree=d,include_bias=False)\n","X_2 = poly2.fit_transform(X)\n","line_2 = poly2.transform(line)\n","\n","#训练数据的拟合\n","LinearR_2 = LinearRegression().fit(X_2, y)\n","LinearR_2.score(X_2,y)"],"execution_count":71,"outputs":[{"output_type":"execute_result","data":{"text/plain":["0.8561679370344799"]},"metadata":{"tags":[]},"execution_count":71}]},{"metadata":{"id":"7HixnLytWqHY","colab_type":"code","colab":{"base_uri":"https://localhost:8080/","height":34},"outputId":"91bc609d-7f3d-4b8c-8b16-d37b58daad69","executionInfo":{"status":"ok","timestamp":1551680329551,"user_tz":-480,"elapsed":784,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}}},"cell_type":"code","source":["LinearR_2.coef_"],"execution_count":72,"outputs":[{"output_type":"execute_result","data":{"text/plain":["array([ 0.96898826,  0.0636851 , -0.1461538 , -0.0055159 ,  0.00414052])"]},"metadata":{"tags":[]},"execution_count":72}]},{"metadata":{"id":"pVv51IUjW6hl","colab_type":"text"},"cell_type":"markdown","source":["### 可视化"]},{"metadata":{"id":"Z20e7uXWVWQB","colab_type":"code","outputId":"e7e15bc7-a8da-4e66-dc90-618f89676cd3","colab":{"base_uri":"https://localhost:8080/","height":401},"executionInfo":{"status":"ok","timestamp":1551679966959,"user_tz":-480,"elapsed":1225,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}}},"cell_type":"code","source":["import matplotlib.pyplot as plt\n","\n","d=5\n","#和上面展示一致的建模流程\n","LinearR = LinearRegression().fit(X, y)\n","X_ = PF(degree=d).fit_transform(X)\n","LinearR_ = LinearRegression().fit(X_, y)\n","line = np.linspace(-3, 3, 1000, endpoint=False).reshape(-1, 1)\n","line_ = PF(degree=d).fit_transform(line)\n","\n","#放置画布\n","fig, ax1 = plt.subplots(1)\n","\n","#将测试数据带入predict接口，获得模型的拟合效果并进行绘制\n","ax1.plot(line, LinearR.predict(line), linewidth=2, color='green'\n","         ,label=\"linear regression\")\n","ax1.plot(line, LinearR_.predict(line_), linewidth=2, color='red'\n","         ,label=\"Polynomial regression\")\n","\n","#将原数据上的拟合绘制在图像上\n","ax1.plot(X[:, 0], y, 'o', c='k')\n","\n","#其他图形选项\n","ax1.legend(loc=\"best\")\n","ax1.set_ylabel(\"Regression output\")\n","ax1.set_xlabel(\"Input feature\")\n","ax1.set_title(\"Linear Regression ordinary vs poly\")\n","plt.tight_layout()\n","plt.show()\n","\n","#来一起鼓掌，感叹多项式回归的神奇\n","\n","#随后可以试试看较低和较高的次方会发生什么变化\n","#d=2\n","#d=20"],"execution_count":59,"outputs":[{"output_type":"display_data","data":{"image/png":"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\n","text/plain":["<Figure size 576x396 with 1 Axes>"]},"metadata":{"tags":[]}}]},{"metadata":{"id":"L56owkJ8VbGC","colab_type":"text"},"cell_type":"markdown","source":["### 多项式回归的可解释性"]},{"metadata":{"id":"jI7KaOv5VWQE","colab_type":"code","outputId":"40ee3b64-c821-423e-c790-a28bec0d4a24","colab":{"base_uri":"https://localhost:8080/","height":68},"executionInfo":{"status":"ok","timestamp":1551680394853,"user_tz":-480,"elapsed":1067,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}}},"cell_type":"code","source":["import numpy as np\n","from sklearn.preprocessing import PolynomialFeatures\n","from sklearn.linear_model import LinearRegression\n","\n","X = np.arange(9).reshape(3, 3)\n","X"],"execution_count":73,"outputs":[{"output_type":"execute_result","data":{"text/plain":["array([[0, 1, 2],\n","       [3, 4, 5],\n","       [6, 7, 8]])"]},"metadata":{"tags":[]},"execution_count":73}]},{"metadata":{"id":"-LQnhwe-VWQH","colab_type":"code","colab":{}},"cell_type":"code","source":["poly = PolynomialFeatures(degree=5).fit(X)"],"execution_count":0,"outputs":[]},{"metadata":{"id":"l1-FozjOVWQH","colab_type":"code","outputId":"733d9edc-f0c1-4465-b33a-fb5d33fb589d","colab":{"base_uri":"https://localhost:8080/","height":969},"executionInfo":{"status":"ok","timestamp":1551680399227,"user_tz":-480,"elapsed":607,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}}},"cell_type":"code","source":["#重要接口get_feature_names\n","poly.get_feature_names()"],"execution_count":75,"outputs":[{"output_type":"execute_result","data":{"text/plain":["['1',\n"," 'x0',\n"," 'x1',\n"," 'x2',\n"," 'x0^2',\n"," 'x0 x1',\n"," 'x0 x2',\n"," 'x1^2',\n"," 'x1 x2',\n"," 'x2^2',\n"," 'x0^3',\n"," 'x0^2 x1',\n"," 'x0^2 x2',\n"," 'x0 x1^2',\n"," 'x0 x1 x2',\n"," 'x0 x2^2',\n"," 'x1^3',\n"," 'x1^2 x2',\n"," 'x1 x2^2',\n"," 'x2^3',\n"," 'x0^4',\n"," 'x0^3 x1',\n"," 'x0^3 x2',\n"," 'x0^2 x1^2',\n"," 'x0^2 x1 x2',\n"," 'x0^2 x2^2',\n"," 'x0 x1^3',\n"," 'x0 x1^2 x2',\n"," 'x0 x1 x2^2',\n"," 'x0 x2^3',\n"," 'x1^4',\n"," 'x1^3 x2',\n"," 'x1^2 x2^2',\n"," 'x1 x2^3',\n"," 'x2^4',\n"," 'x0^5',\n"," 'x0^4 x1',\n"," 'x0^4 x2',\n"," 'x0^3 x1^2',\n"," 'x0^3 x1 x2',\n"," 'x0^3 x2^2',\n"," 'x0^2 x1^3',\n"," 'x0^2 x1^2 x2',\n"," 'x0^2 x1 x2^2',\n"," 'x0^2 x2^3',\n"," 'x0 x1^4',\n"," 'x0 x1^3 x2',\n"," 'x0 x1^2 x2^2',\n"," 'x0 x1 x2^3',\n"," 'x0 x2^4',\n"," 'x1^5',\n"," 'x1^4 x2',\n"," 'x1^3 x2^2',\n"," 'x1^2 x2^3',\n"," 'x1 x2^4',\n"," 'x2^5']"]},"metadata":{"tags":[]},"execution_count":75}]},{"metadata":{"id":"KLXmbxOmVWQJ","colab_type":"code","outputId":"e0f38768-4535-473d-c675-af34bd205441","colab":{"base_uri":"https://localhost:8080/","height":170},"executionInfo":{"status":"ok","timestamp":1551680406813,"user_tz":-480,"elapsed":4241,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}}},"cell_type":"code","source":["from sklearn.datasets import fetch_california_housing as fch\n","import pandas as pd\n","\n","housevalue = fch()\n","X = pd.DataFrame(housevalue.data)\n","y = housevalue.target\n","housevalue.feature_names"],"execution_count":76,"outputs":[{"output_type":"stream","text":["Downloading Cal. housing from https://ndownloader.figshare.com/files/5976036 to /root/scikit_learn_data\n"],"name":"stderr"},{"output_type":"execute_result","data":{"text/plain":["['MedInc',\n"," 'HouseAge',\n"," 'AveRooms',\n"," 'AveBedrms',\n"," 'Population',\n"," 'AveOccup',\n"," 'Latitude',\n"," 'Longitude']"]},"metadata":{"tags":[]},"execution_count":76}]},{"metadata":{"id":"22Y58JS1VWQK","colab_type":"code","colab":{}},"cell_type":"code","source":["X.columns = [\"住户收入中位数\",\"房屋使用年代中位数\",\"平均房间数目\"\n","            ,\"平均卧室数目\",\"街区人口\",\"平均入住率\",\"街区的纬度\",\"街区的经度\"]"],"execution_count":0,"outputs":[]},{"metadata":{"id":"yDIBLqGxVWQL","colab_type":"code","outputId":"7df1536d-89c6-4d61-f785-0c5397e83c38","colab":{"base_uri":"https://localhost:8080/","height":221},"executionInfo":{"status":"ok","timestamp":1551680415073,"user_tz":-480,"elapsed":635,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}}},"cell_type":"code","source":["X.head()"],"execution_count":78,"outputs":[{"output_type":"execute_result","data":{"text/html":["<div>\n","<style scoped>\n","    .dataframe tbody tr th:only-of-type {\n","        vertical-align: middle;\n","    }\n","\n","    .dataframe tbody tr th {\n","        vertical-align: top;\n","    }\n","\n","    .dataframe thead th {\n","        text-align: right;\n","    }\n","</style>\n","<table border=\"1\" class=\"dataframe\">\n","  <thead>\n","    <tr style=\"text-align: right;\">\n","      <th></th>\n","      <th>住户收入中位数</th>\n","      <th>房屋使用年代中位数</th>\n","      <th>平均房间数目</th>\n","      <th>平均卧室数目</th>\n","      <th>街区人口</th>\n","      <th>平均入住率</th>\n","      <th>街区的纬度</th>\n","      <th>街区的经度</th>\n","    </tr>\n","  </thead>\n","  <tbody>\n","    <tr>\n","      <th>0</th>\n","      <td>8.3252</td>\n","      <td>41.0</td>\n","      <td>6.984127</td>\n","      <td>1.023810</td>\n","      <td>322.0</td>\n","      <td>2.555556</td>\n","      <td>37.88</td>\n","      <td>-122.23</td>\n","    </tr>\n","    <tr>\n","      <th>1</th>\n","      <td>8.3014</td>\n","      <td>21.0</td>\n","      <td>6.238137</td>\n","      <td>0.971880</td>\n","      <td>2401.0</td>\n","      <td>2.109842</td>\n","      <td>37.86</td>\n","      <td>-122.22</td>\n","    </tr>\n","    <tr>\n","      <th>2</th>\n","      <td>7.2574</td>\n","      <td>52.0</td>\n","      <td>8.288136</td>\n","      <td>1.073446</td>\n","      <td>496.0</td>\n","      <td>2.802260</td>\n","      <td>37.85</td>\n","      <td>-122.24</td>\n","    </tr>\n","    <tr>\n","      <th>3</th>\n","      <td>5.6431</td>\n","      <td>52.0</td>\n","      <td>5.817352</td>\n","      <td>1.073059</td>\n","      <td>558.0</td>\n","      <td>2.547945</td>\n","      <td>37.85</td>\n","      <td>-122.25</td>\n","    </tr>\n","    <tr>\n","      <th>4</th>\n","      <td>3.8462</td>\n","      <td>52.0</td>\n","      <td>6.281853</td>\n","      <td>1.081081</td>\n","      <td>565.0</td>\n","      <td>2.181467</td>\n","      <td>37.85</td>\n","      <td>-122.25</td>\n","    </tr>\n","  </tbody>\n","</table>\n","</div>"],"text/plain":["   住户收入中位数  房屋使用年代中位数    平均房间数目    平均卧室数目    街区人口     平均入住率  街区的纬度   街区的经度\n","0   8.3252       41.0  6.984127  1.023810   322.0  2.555556  37.88 -122.23\n","1   8.3014       21.0  6.238137  0.971880  2401.0  2.109842  37.86 -122.22\n","2   7.2574       52.0  8.288136  1.073446   496.0  2.802260  37.85 -122.24\n","3   5.6431       52.0  5.817352  1.073059   558.0  2.547945  37.85 -122.25\n","4   3.8462       52.0  6.281853  1.081081   565.0  2.181467  37.85 -122.25"]},"metadata":{"tags":[]},"execution_count":78}]},{"metadata":{"id":"l-JIVq7tVWQM","colab_type":"code","colab":{}},"cell_type":"code","source":["poly = PolynomialFeatures(degree=4).fit(X,y)"],"execution_count":0,"outputs":[]},{"metadata":{"id":"nwBt-aQsVWQN","colab_type":"code","outputId":"0e10b447-3371-423a-9b7a-edd4512e3422","colab":{"base_uri":"https://localhost:8080/","height":8432},"executionInfo":{"status":"ok","timestamp":1551680423568,"user_tz":-480,"elapsed":1352,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}}},"cell_type":"code","source":["poly.get_feature_names(X.columns)"],"execution_count":80,"outputs":[{"output_type":"execute_result","data":{"text/plain":["['1',\n"," '住户收入中位数',\n"," '房屋使用年代中位数',\n"," '平均房间数目',\n"," '平均卧室数目',\n"," '街区人口',\n"," '平均入住率',\n"," '街区的纬度',\n"," '街区的经度',\n"," '住户收入中位数^2',\n"," '住户收入中位数 房屋使用年代中位数',\n"," '住户收入中位数 平均房间数目',\n"," '住户收入中位数 平均卧室数目',\n"," '住户收入中位数 街区人口',\n"," '住户收入中位数 平均入住率',\n"," '住户收入中位数 街区的纬度',\n"," '住户收入中位数 街区的经度',\n"," '房屋使用年代中位数^2',\n"," '房屋使用年代中位数 平均房间数目',\n"," '房屋使用年代中位数 平均卧室数目',\n"," '房屋使用年代中位数 街区人口',\n"," '房屋使用年代中位数 平均入住率',\n"," '房屋使用年代中位数 街区的纬度',\n"," '房屋使用年代中位数 街区的经度',\n"," '平均房间数目^2',\n"," '平均房间数目 平均卧室数目',\n"," '平均房间数目 街区人口',\n"," '平均房间数目 平均入住率',\n"," '平均房间数目 街区的纬度',\n"," '平均房间数目 街区的经度',\n"," '平均卧室数目^2',\n"," '平均卧室数目 街区人口',\n"," '平均卧室数目 平均入住率',\n"," '平均卧室数目 街区的纬度',\n"," '平均卧室数目 街区的经度',\n"," '街区人口^2',\n"," '街区人口 平均入住率',\n"," '街区人口 街区的纬度',\n"," '街区人口 街区的经度',\n"," '平均入住率^2',\n"," '平均入住率 街区的纬度',\n"," '平均入住率 街区的经度',\n"," '街区的纬度^2',\n"," '街区的纬度 街区的经度',\n"," '街区的经度^2',\n"," '住户收入中位数^3',\n"," '住户收入中位数^2 房屋使用年代中位数',\n"," '住户收入中位数^2 平均房间数目',\n"," '住户收入中位数^2 平均卧室数目',\n"," '住户收入中位数^2 街区人口',\n"," '住户收入中位数^2 平均入住率',\n"," '住户收入中位数^2 街区的纬度',\n"," '住户收入中位数^2 街区的经度',\n"," '住户收入中位数 房屋使用年代中位数^2',\n"," '住户收入中位数 房屋使用年代中位数 平均房间数目',\n"," '住户收入中位数 房屋使用年代中位数 平均卧室数目',\n"," '住户收入中位数 房屋使用年代中位数 街区人口',\n"," '住户收入中位数 房屋使用年代中位数 平均入住率',\n"," '住户收入中位数 房屋使用年代中位数 街区的纬度',\n"," '住户收入中位数 房屋使用年代中位数 街区的经度',\n"," '住户收入中位数 平均房间数目^2',\n"," '住户收入中位数 平均房间数目 平均卧室数目',\n"," '住户收入中位数 平均房间数目 街区人口',\n"," '住户收入中位数 平均房间数目 平均入住率',\n"," '住户收入中位数 平均房间数目 街区的纬度',\n"," '住户收入中位数 平均房间数目 街区的经度',\n"," '住户收入中位数 平均卧室数目^2',\n"," '住户收入中位数 平均卧室数目 街区人口',\n"," '住户收入中位数 平均卧室数目 平均入住率',\n"," '住户收入中位数 平均卧室数目 街区的纬度',\n"," '住户收入中位数 平均卧室数目 街区的经度',\n"," '住户收入中位数 街区人口^2',\n"," '住户收入中位数 街区人口 平均入住率',\n"," '住户收入中位数 街区人口 街区的纬度',\n"," '住户收入中位数 街区人口 街区的经度',\n"," '住户收入中位数 平均入住率^2',\n"," '住户收入中位数 平均入住率 街区的纬度',\n"," '住户收入中位数 平均入住率 街区的经度',\n"," '住户收入中位数 街区的纬度^2',\n"," '住户收入中位数 街区的纬度 街区的经度',\n"," '住户收入中位数 街区的经度^2',\n"," '房屋使用年代中位数^3',\n"," '房屋使用年代中位数^2 平均房间数目',\n"," '房屋使用年代中位数^2 平均卧室数目',\n"," '房屋使用年代中位数^2 街区人口',\n"," '房屋使用年代中位数^2 平均入住率',\n"," '房屋使用年代中位数^2 街区的纬度',\n"," '房屋使用年代中位数^2 街区的经度',\n"," '房屋使用年代中位数 平均房间数目^2',\n"," '房屋使用年代中位数 平均房间数目 平均卧室数目',\n"," '房屋使用年代中位数 平均房间数目 街区人口',\n"," '房屋使用年代中位数 平均房间数目 平均入住率',\n"," '房屋使用年代中位数 平均房间数目 街区的纬度',\n"," '房屋使用年代中位数 平均房间数目 街区的经度',\n"," '房屋使用年代中位数 平均卧室数目^2',\n"," '房屋使用年代中位数 平均卧室数目 街区人口',\n"," '房屋使用年代中位数 平均卧室数目 平均入住率',\n"," '房屋使用年代中位数 平均卧室数目 街区的纬度',\n"," '房屋使用年代中位数 平均卧室数目 街区的经度',\n"," '房屋使用年代中位数 街区人口^2',\n"," '房屋使用年代中位数 街区人口 平均入住率',\n"," '房屋使用年代中位数 街区人口 街区的纬度',\n"," '房屋使用年代中位数 街区人口 街区的经度',\n"," '房屋使用年代中位数 平均入住率^2',\n"," '房屋使用年代中位数 平均入住率 街区的纬度',\n"," '房屋使用年代中位数 平均入住率 街区的经度',\n"," '房屋使用年代中位数 街区的纬度^2',\n"," '房屋使用年代中位数 街区的纬度 街区的经度',\n"," '房屋使用年代中位数 街区的经度^2',\n"," '平均房间数目^3',\n"," '平均房间数目^2 平均卧室数目',\n"," '平均房间数目^2 街区人口',\n"," '平均房间数目^2 平均入住率',\n"," '平均房间数目^2 街区的纬度',\n"," '平均房间数目^2 街区的经度',\n"," '平均房间数目 平均卧室数目^2',\n"," '平均房间数目 平均卧室数目 街区人口',\n"," '平均房间数目 平均卧室数目 平均入住率',\n"," '平均房间数目 平均卧室数目 街区的纬度',\n"," '平均房间数目 平均卧室数目 街区的经度',\n"," '平均房间数目 街区人口^2',\n"," '平均房间数目 街区人口 平均入住率',\n"," '平均房间数目 街区人口 街区的纬度',\n"," '平均房间数目 街区人口 街区的经度',\n"," '平均房间数目 平均入住率^2',\n"," '平均房间数目 平均入住率 街区的纬度',\n"," '平均房间数目 平均入住率 街区的经度',\n"," '平均房间数目 街区的纬度^2',\n"," '平均房间数目 街区的纬度 街区的经度',\n"," '平均房间数目 街区的经度^2',\n"," '平均卧室数目^3',\n"," '平均卧室数目^2 街区人口',\n"," '平均卧室数目^2 平均入住率',\n"," '平均卧室数目^2 街区的纬度',\n"," '平均卧室数目^2 街区的经度',\n"," '平均卧室数目 街区人口^2',\n"," '平均卧室数目 街区人口 平均入住率',\n"," '平均卧室数目 街区人口 街区的纬度',\n"," '平均卧室数目 街区人口 街区的经度',\n"," '平均卧室数目 平均入住率^2',\n"," '平均卧室数目 平均入住率 街区的纬度',\n"," '平均卧室数目 平均入住率 街区的经度',\n"," '平均卧室数目 街区的纬度^2',\n"," '平均卧室数目 街区的纬度 街区的经度',\n"," '平均卧室数目 街区的经度^2',\n"," '街区人口^3',\n"," '街区人口^2 平均入住率',\n"," '街区人口^2 街区的纬度',\n"," '街区人口^2 街区的经度',\n"," '街区人口 平均入住率^2',\n"," '街区人口 平均入住率 街区的纬度',\n"," '街区人口 平均入住率 街区的经度',\n"," '街区人口 街区的纬度^2',\n"," '街区人口 街区的纬度 街区的经度',\n"," '街区人口 街区的经度^2',\n"," '平均入住率^3',\n"," '平均入住率^2 街区的纬度',\n"," '平均入住率^2 街区的经度',\n"," '平均入住率 街区的纬度^2',\n"," '平均入住率 街区的纬度 街区的经度',\n"," '平均入住率 街区的经度^2',\n"," '街区的纬度^3',\n"," '街区的纬度^2 街区的经度',\n"," '街区的纬度 街区的经度^2',\n"," '街区的经度^3',\n"," '住户收入中位数^4',\n"," '住户收入中位数^3 房屋使用年代中位数',\n"," '住户收入中位数^3 平均房间数目',\n"," '住户收入中位数^3 平均卧室数目',\n"," '住户收入中位数^3 街区人口',\n"," '住户收入中位数^3 平均入住率',\n"," '住户收入中位数^3 街区的纬度',\n"," '住户收入中位数^3 街区的经度',\n"," '住户收入中位数^2 房屋使用年代中位数^2',\n"," '住户收入中位数^2 房屋使用年代中位数 平均房间数目',\n"," '住户收入中位数^2 房屋使用年代中位数 平均卧室数目',\n"," '住户收入中位数^2 房屋使用年代中位数 街区人口',\n"," '住户收入中位数^2 房屋使用年代中位数 平均入住率',\n"," '住户收入中位数^2 房屋使用年代中位数 街区的纬度',\n"," '住户收入中位数^2 房屋使用年代中位数 街区的经度',\n"," '住户收入中位数^2 平均房间数目^2',\n"," '住户收入中位数^2 平均房间数目 平均卧室数目',\n"," '住户收入中位数^2 平均房间数目 街区人口',\n"," '住户收入中位数^2 平均房间数目 平均入住率',\n"," '住户收入中位数^2 平均房间数目 街区的纬度',\n"," '住户收入中位数^2 平均房间数目 街区的经度',\n"," '住户收入中位数^2 平均卧室数目^2',\n"," '住户收入中位数^2 平均卧室数目 街区人口',\n"," '住户收入中位数^2 平均卧室数目 平均入住率',\n"," '住户收入中位数^2 平均卧室数目 街区的纬度',\n"," '住户收入中位数^2 平均卧室数目 街区的经度',\n"," '住户收入中位数^2 街区人口^2',\n"," '住户收入中位数^2 街区人口 平均入住率',\n"," '住户收入中位数^2 街区人口 街区的纬度',\n"," '住户收入中位数^2 街区人口 街区的经度',\n"," '住户收入中位数^2 平均入住率^2',\n"," '住户收入中位数^2 平均入住率 街区的纬度',\n"," '住户收入中位数^2 平均入住率 街区的经度',\n"," '住户收入中位数^2 街区的纬度^2',\n"," '住户收入中位数^2 街区的纬度 街区的经度',\n"," '住户收入中位数^2 街区的经度^2',\n"," '住户收入中位数 房屋使用年代中位数^3',\n"," '住户收入中位数 房屋使用年代中位数^2 平均房间数目',\n"," '住户收入中位数 房屋使用年代中位数^2 平均卧室数目',\n"," '住户收入中位数 房屋使用年代中位数^2 街区人口',\n"," '住户收入中位数 房屋使用年代中位数^2 平均入住率',\n"," '住户收入中位数 房屋使用年代中位数^2 街区的纬度',\n"," '住户收入中位数 房屋使用年代中位数^2 街区的经度',\n"," '住户收入中位数 房屋使用年代中位数 平均房间数目^2',\n"," '住户收入中位数 房屋使用年代中位数 平均房间数目 平均卧室数目',\n"," '住户收入中位数 房屋使用年代中位数 平均房间数目 街区人口',\n"," '住户收入中位数 房屋使用年代中位数 平均房间数目 平均入住率',\n"," '住户收入中位数 房屋使用年代中位数 平均房间数目 街区的纬度',\n"," '住户收入中位数 房屋使用年代中位数 平均房间数目 街区的经度',\n"," '住户收入中位数 房屋使用年代中位数 平均卧室数目^2',\n"," '住户收入中位数 房屋使用年代中位数 平均卧室数目 街区人口',\n"," '住户收入中位数 房屋使用年代中位数 平均卧室数目 平均入住率',\n"," '住户收入中位数 房屋使用年代中位数 平均卧室数目 街区的纬度',\n"," '住户收入中位数 房屋使用年代中位数 平均卧室数目 街区的经度',\n"," '住户收入中位数 房屋使用年代中位数 街区人口^2',\n"," '住户收入中位数 房屋使用年代中位数 街区人口 平均入住率',\n"," '住户收入中位数 房屋使用年代中位数 街区人口 街区的纬度',\n"," '住户收入中位数 房屋使用年代中位数 街区人口 街区的经度',\n"," '住户收入中位数 房屋使用年代中位数 平均入住率^2',\n"," '住户收入中位数 房屋使用年代中位数 平均入住率 街区的纬度',\n"," '住户收入中位数 房屋使用年代中位数 平均入住率 街区的经度',\n"," '住户收入中位数 房屋使用年代中位数 街区的纬度^2',\n"," '住户收入中位数 房屋使用年代中位数 街区的纬度 街区的经度',\n"," '住户收入中位数 房屋使用年代中位数 街区的经度^2',\n"," '住户收入中位数 平均房间数目^3',\n"," '住户收入中位数 平均房间数目^2 平均卧室数目',\n"," '住户收入中位数 平均房间数目^2 街区人口',\n"," '住户收入中位数 平均房间数目^2 平均入住率',\n"," '住户收入中位数 平均房间数目^2 街区的纬度',\n"," '住户收入中位数 平均房间数目^2 街区的经度',\n"," '住户收入中位数 平均房间数目 平均卧室数目^2',\n"," '住户收入中位数 平均房间数目 平均卧室数目 街区人口',\n"," '住户收入中位数 平均房间数目 平均卧室数目 平均入住率',\n"," '住户收入中位数 平均房间数目 平均卧室数目 街区的纬度',\n"," '住户收入中位数 平均房间数目 平均卧室数目 街区的经度',\n"," '住户收入中位数 平均房间数目 街区人口^2',\n"," '住户收入中位数 平均房间数目 街区人口 平均入住率',\n"," '住户收入中位数 平均房间数目 街区人口 街区的纬度',\n"," '住户收入中位数 平均房间数目 街区人口 街区的经度',\n"," '住户收入中位数 平均房间数目 平均入住率^2',\n"," '住户收入中位数 平均房间数目 平均入住率 街区的纬度',\n"," '住户收入中位数 平均房间数目 平均入住率 街区的经度',\n"," '住户收入中位数 平均房间数目 街区的纬度^2',\n"," '住户收入中位数 平均房间数目 街区的纬度 街区的经度',\n"," '住户收入中位数 平均房间数目 街区的经度^2',\n"," '住户收入中位数 平均卧室数目^3',\n"," '住户收入中位数 平均卧室数目^2 街区人口',\n"," '住户收入中位数 平均卧室数目^2 平均入住率',\n"," '住户收入中位数 平均卧室数目^2 街区的纬度',\n"," '住户收入中位数 平均卧室数目^2 街区的经度',\n"," '住户收入中位数 平均卧室数目 街区人口^2',\n"," '住户收入中位数 平均卧室数目 街区人口 平均入住率',\n"," '住户收入中位数 平均卧室数目 街区人口 街区的纬度',\n"," '住户收入中位数 平均卧室数目 街区人口 街区的经度',\n"," '住户收入中位数 平均卧室数目 平均入住率^2',\n"," '住户收入中位数 平均卧室数目 平均入住率 街区的纬度',\n"," '住户收入中位数 平均卧室数目 平均入住率 街区的经度',\n"," '住户收入中位数 平均卧室数目 街区的纬度^2',\n"," '住户收入中位数 平均卧室数目 街区的纬度 街区的经度',\n"," '住户收入中位数 平均卧室数目 街区的经度^2',\n"," '住户收入中位数 街区人口^3',\n"," '住户收入中位数 街区人口^2 平均入住率',\n"," '住户收入中位数 街区人口^2 街区的纬度',\n"," '住户收入中位数 街区人口^2 街区的经度',\n"," '住户收入中位数 街区人口 平均入住率^2',\n"," '住户收入中位数 街区人口 平均入住率 街区的纬度',\n"," '住户收入中位数 街区人口 平均入住率 街区的经度',\n"," '住户收入中位数 街区人口 街区的纬度^2',\n"," '住户收入中位数 街区人口 街区的纬度 街区的经度',\n"," '住户收入中位数 街区人口 街区的经度^2',\n"," '住户收入中位数 平均入住率^3',\n"," '住户收入中位数 平均入住率^2 街区的纬度',\n"," '住户收入中位数 平均入住率^2 街区的经度',\n"," '住户收入中位数 平均入住率 街区的纬度^2',\n"," '住户收入中位数 平均入住率 街区的纬度 街区的经度',\n"," '住户收入中位数 平均入住率 街区的经度^2',\n"," '住户收入中位数 街区的纬度^3',\n"," '住户收入中位数 街区的纬度^2 街区的经度',\n"," '住户收入中位数 街区的纬度 街区的经度^2',\n"," '住户收入中位数 街区的经度^3',\n"," '房屋使用年代中位数^4',\n"," '房屋使用年代中位数^3 平均房间数目',\n"," '房屋使用年代中位数^3 平均卧室数目',\n"," '房屋使用年代中位数^3 街区人口',\n"," '房屋使用年代中位数^3 平均入住率',\n"," '房屋使用年代中位数^3 街区的纬度',\n"," '房屋使用年代中位数^3 街区的经度',\n"," '房屋使用年代中位数^2 平均房间数目^2',\n"," '房屋使用年代中位数^2 平均房间数目 平均卧室数目',\n"," '房屋使用年代中位数^2 平均房间数目 街区人口',\n"," '房屋使用年代中位数^2 平均房间数目 平均入住率',\n"," '房屋使用年代中位数^2 平均房间数目 街区的纬度',\n"," '房屋使用年代中位数^2 平均房间数目 街区的经度',\n"," '房屋使用年代中位数^2 平均卧室数目^2',\n"," '房屋使用年代中位数^2 平均卧室数目 街区人口',\n"," '房屋使用年代中位数^2 平均卧室数目 平均入住率',\n"," '房屋使用年代中位数^2 平均卧室数目 街区的纬度',\n"," '房屋使用年代中位数^2 平均卧室数目 街区的经度',\n"," '房屋使用年代中位数^2 街区人口^2',\n"," '房屋使用年代中位数^2 街区人口 平均入住率',\n"," '房屋使用年代中位数^2 街区人口 街区的纬度',\n"," '房屋使用年代中位数^2 街区人口 街区的经度',\n"," '房屋使用年代中位数^2 平均入住率^2',\n"," '房屋使用年代中位数^2 平均入住率 街区的纬度',\n"," '房屋使用年代中位数^2 平均入住率 街区的经度',\n"," '房屋使用年代中位数^2 街区的纬度^2',\n"," '房屋使用年代中位数^2 街区的纬度 街区的经度',\n"," '房屋使用年代中位数^2 街区的经度^2',\n"," '房屋使用年代中位数 平均房间数目^3',\n"," '房屋使用年代中位数 平均房间数目^2 平均卧室数目',\n"," '房屋使用年代中位数 平均房间数目^2 街区人口',\n"," '房屋使用年代中位数 平均房间数目^2 平均入住率',\n"," '房屋使用年代中位数 平均房间数目^2 街区的纬度',\n"," '房屋使用年代中位数 平均房间数目^2 街区的经度',\n"," '房屋使用年代中位数 平均房间数目 平均卧室数目^2',\n"," '房屋使用年代中位数 平均房间数目 平均卧室数目 街区人口',\n"," '房屋使用年代中位数 平均房间数目 平均卧室数目 平均入住率',\n"," '房屋使用年代中位数 平均房间数目 平均卧室数目 街区的纬度',\n"," '房屋使用年代中位数 平均房间数目 平均卧室数目 街区的经度',\n"," '房屋使用年代中位数 平均房间数目 街区人口^2',\n"," '房屋使用年代中位数 平均房间数目 街区人口 平均入住率',\n"," '房屋使用年代中位数 平均房间数目 街区人口 街区的纬度',\n"," '房屋使用年代中位数 平均房间数目 街区人口 街区的经度',\n"," '房屋使用年代中位数 平均房间数目 平均入住率^2',\n"," '房屋使用年代中位数 平均房间数目 平均入住率 街区的纬度',\n"," '房屋使用年代中位数 平均房间数目 平均入住率 街区的经度',\n"," '房屋使用年代中位数 平均房间数目 街区的纬度^2',\n"," '房屋使用年代中位数 平均房间数目 街区的纬度 街区的经度',\n"," '房屋使用年代中位数 平均房间数目 街区的经度^2',\n"," '房屋使用年代中位数 平均卧室数目^3',\n"," '房屋使用年代中位数 平均卧室数目^2 街区人口',\n"," '房屋使用年代中位数 平均卧室数目^2 平均入住率',\n"," '房屋使用年代中位数 平均卧室数目^2 街区的纬度',\n"," '房屋使用年代中位数 平均卧室数目^2 街区的经度',\n"," '房屋使用年代中位数 平均卧室数目 街区人口^2',\n"," '房屋使用年代中位数 平均卧室数目 街区人口 平均入住率',\n"," '房屋使用年代中位数 平均卧室数目 街区人口 街区的纬度',\n"," '房屋使用年代中位数 平均卧室数目 街区人口 街区的经度',\n"," '房屋使用年代中位数 平均卧室数目 平均入住率^2',\n"," '房屋使用年代中位数 平均卧室数目 平均入住率 街区的纬度',\n"," '房屋使用年代中位数 平均卧室数目 平均入住率 街区的经度',\n"," '房屋使用年代中位数 平均卧室数目 街区的纬度^2',\n"," '房屋使用年代中位数 平均卧室数目 街区的纬度 街区的经度',\n"," '房屋使用年代中位数 平均卧室数目 街区的经度^2',\n"," '房屋使用年代中位数 街区人口^3',\n"," '房屋使用年代中位数 街区人口^2 平均入住率',\n"," '房屋使用年代中位数 街区人口^2 街区的纬度',\n"," '房屋使用年代中位数 街区人口^2 街区的经度',\n"," '房屋使用年代中位数 街区人口 平均入住率^2',\n"," '房屋使用年代中位数 街区人口 平均入住率 街区的纬度',\n"," '房屋使用年代中位数 街区人口 平均入住率 街区的经度',\n"," '房屋使用年代中位数 街区人口 街区的纬度^2',\n"," '房屋使用年代中位数 街区人口 街区的纬度 街区的经度',\n"," '房屋使用年代中位数 街区人口 街区的经度^2',\n"," '房屋使用年代中位数 平均入住率^3',\n"," '房屋使用年代中位数 平均入住率^2 街区的纬度',\n"," '房屋使用年代中位数 平均入住率^2 街区的经度',\n"," '房屋使用年代中位数 平均入住率 街区的纬度^2',\n"," '房屋使用年代中位数 平均入住率 街区的纬度 街区的经度',\n"," '房屋使用年代中位数 平均入住率 街区的经度^2',\n"," '房屋使用年代中位数 街区的纬度^3',\n"," '房屋使用年代中位数 街区的纬度^2 街区的经度',\n"," '房屋使用年代中位数 街区的纬度 街区的经度^2',\n"," '房屋使用年代中位数 街区的经度^3',\n"," '平均房间数目^4',\n"," '平均房间数目^3 平均卧室数目',\n"," '平均房间数目^3 街区人口',\n"," '平均房间数目^3 平均入住率',\n"," '平均房间数目^3 街区的纬度',\n"," '平均房间数目^3 街区的经度',\n"," '平均房间数目^2 平均卧室数目^2',\n"," '平均房间数目^2 平均卧室数目 街区人口',\n"," '平均房间数目^2 平均卧室数目 平均入住率',\n"," '平均房间数目^2 平均卧室数目 街区的纬度',\n"," '平均房间数目^2 平均卧室数目 街区的经度',\n"," '平均房间数目^2 街区人口^2',\n"," '平均房间数目^2 街区人口 平均入住率',\n"," '平均房间数目^2 街区人口 街区的纬度',\n"," '平均房间数目^2 街区人口 街区的经度',\n"," '平均房间数目^2 平均入住率^2',\n"," '平均房间数目^2 平均入住率 街区的纬度',\n"," '平均房间数目^2 平均入住率 街区的经度',\n"," '平均房间数目^2 街区的纬度^2',\n"," '平均房间数目^2 街区的纬度 街区的经度',\n"," '平均房间数目^2 街区的经度^2',\n"," '平均房间数目 平均卧室数目^3',\n"," '平均房间数目 平均卧室数目^2 街区人口',\n"," '平均房间数目 平均卧室数目^2 平均入住率',\n"," '平均房间数目 平均卧室数目^2 街区的纬度',\n"," '平均房间数目 平均卧室数目^2 街区的经度',\n"," '平均房间数目 平均卧室数目 街区人口^2',\n"," '平均房间数目 平均卧室数目 街区人口 平均入住率',\n"," '平均房间数目 平均卧室数目 街区人口 街区的纬度',\n"," '平均房间数目 平均卧室数目 街区人口 街区的经度',\n"," '平均房间数目 平均卧室数目 平均入住率^2',\n"," '平均房间数目 平均卧室数目 平均入住率 街区的纬度',\n"," '平均房间数目 平均卧室数目 平均入住率 街区的经度',\n"," '平均房间数目 平均卧室数目 街区的纬度^2',\n"," '平均房间数目 平均卧室数目 街区的纬度 街区的经度',\n"," '平均房间数目 平均卧室数目 街区的经度^2',\n"," '平均房间数目 街区人口^3',\n"," '平均房间数目 街区人口^2 平均入住率',\n"," '平均房间数目 街区人口^2 街区的纬度',\n"," '平均房间数目 街区人口^2 街区的经度',\n"," '平均房间数目 街区人口 平均入住率^2',\n"," '平均房间数目 街区人口 平均入住率 街区的纬度',\n"," '平均房间数目 街区人口 平均入住率 街区的经度',\n"," '平均房间数目 街区人口 街区的纬度^2',\n"," '平均房间数目 街区人口 街区的纬度 街区的经度',\n"," '平均房间数目 街区人口 街区的经度^2',\n"," '平均房间数目 平均入住率^3',\n"," '平均房间数目 平均入住率^2 街区的纬度',\n"," '平均房间数目 平均入住率^2 街区的经度',\n"," '平均房间数目 平均入住率 街区的纬度^2',\n"," '平均房间数目 平均入住率 街区的纬度 街区的经度',\n"," '平均房间数目 平均入住率 街区的经度^2',\n"," '平均房间数目 街区的纬度^3',\n"," '平均房间数目 街区的纬度^2 街区的经度',\n"," '平均房间数目 街区的纬度 街区的经度^2',\n"," '平均房间数目 街区的经度^3',\n"," '平均卧室数目^4',\n"," '平均卧室数目^3 街区人口',\n"," '平均卧室数目^3 平均入住率',\n"," '平均卧室数目^3 街区的纬度',\n"," '平均卧室数目^3 街区的经度',\n"," '平均卧室数目^2 街区人口^2',\n"," '平均卧室数目^2 街区人口 平均入住率',\n"," '平均卧室数目^2 街区人口 街区的纬度',\n"," '平均卧室数目^2 街区人口 街区的经度',\n"," '平均卧室数目^2 平均入住率^2',\n"," '平均卧室数目^2 平均入住率 街区的纬度',\n"," '平均卧室数目^2 平均入住率 街区的经度',\n"," '平均卧室数目^2 街区的纬度^2',\n"," '平均卧室数目^2 街区的纬度 街区的经度',\n"," '平均卧室数目^2 街区的经度^2',\n"," '平均卧室数目 街区人口^3',\n"," '平均卧室数目 街区人口^2 平均入住率',\n"," '平均卧室数目 街区人口^2 街区的纬度',\n"," '平均卧室数目 街区人口^2 街区的经度',\n"," '平均卧室数目 街区人口 平均入住率^2',\n"," '平均卧室数目 街区人口 平均入住率 街区的纬度',\n"," '平均卧室数目 街区人口 平均入住率 街区的经度',\n"," '平均卧室数目 街区人口 街区的纬度^2',\n"," '平均卧室数目 街区人口 街区的纬度 街区的经度',\n"," '平均卧室数目 街区人口 街区的经度^2',\n"," '平均卧室数目 平均入住率^3',\n"," '平均卧室数目 平均入住率^2 街区的纬度',\n"," '平均卧室数目 平均入住率^2 街区的经度',\n"," '平均卧室数目 平均入住率 街区的纬度^2',\n"," '平均卧室数目 平均入住率 街区的纬度 街区的经度',\n"," '平均卧室数目 平均入住率 街区的经度^2',\n"," '平均卧室数目 街区的纬度^3',\n"," '平均卧室数目 街区的纬度^2 街区的经度',\n"," '平均卧室数目 街区的纬度 街区的经度^2',\n"," '平均卧室数目 街区的经度^3',\n"," '街区人口^4',\n"," '街区人口^3 平均入住率',\n"," '街区人口^3 街区的纬度',\n"," '街区人口^3 街区的经度',\n"," '街区人口^2 平均入住率^2',\n"," '街区人口^2 平均入住率 街区的纬度',\n"," '街区人口^2 平均入住率 街区的经度',\n"," '街区人口^2 街区的纬度^2',\n"," '街区人口^2 街区的纬度 街区的经度',\n"," '街区人口^2 街区的经度^2',\n"," '街区人口 平均入住率^3',\n"," '街区人口 平均入住率^2 街区的纬度',\n"," '街区人口 平均入住率^2 街区的经度',\n"," '街区人口 平均入住率 街区的纬度^2',\n"," '街区人口 平均入住率 街区的纬度 街区的经度',\n"," '街区人口 平均入住率 街区的经度^2',\n"," '街区人口 街区的纬度^3',\n"," '街区人口 街区的纬度^2 街区的经度',\n"," '街区人口 街区的纬度 街区的经度^2',\n"," '街区人口 街区的经度^3',\n"," '平均入住率^4',\n"," '平均入住率^3 街区的纬度',\n"," '平均入住率^3 街区的经度',\n"," '平均入住率^2 街区的纬度^2',\n"," '平均入住率^2 街区的纬度 街区的经度',\n"," '平均入住率^2 街区的经度^2',\n"," '平均入住率 街区的纬度^3',\n"," '平均入住率 街区的纬度^2 街区的经度',\n"," '平均入住率 街区的纬度 街区的经度^2',\n"," '平均入住率 街区的经度^3',\n"," '街区的纬度^4',\n"," '街区的纬度^3 街区的经度',\n"," '街区的纬度^2 街区的经度^2',\n"," '街区的纬度 街区的经度^3',\n"," '街区的经度^4']"]},"metadata":{"tags":[]},"execution_count":80}]},{"metadata":{"id":"0CyrZBxeVWQP","colab_type":"code","colab":{}},"cell_type":"code","source":["X_ = poly.transform(X)"],"execution_count":0,"outputs":[]},{"metadata":{"id":"m_tTfDh2VWQQ","colab_type":"code","colab":{}},"cell_type":"code","source":["#在这之后，我们依然可以直接建立模型，然后使用线性回归的coef_属性来查看什么特征对标签的影响最大\n","reg = LinearRegression().fit(X_,y)"],"execution_count":0,"outputs":[]},{"metadata":{"id":"jKXuNTuzVWQR","colab_type":"code","colab":{}},"cell_type":"code","source":["coef = reg.coef_"],"execution_count":0,"outputs":[]},{"metadata":{"id":"kB61_yZ0VWQS","colab_type":"code","outputId":"1d2f9d76-f50e-4642-ec87-7c893b0db846","colab":{"base_uri":"https://localhost:8080/","height":2125},"executionInfo":{"status":"ok","timestamp":1551680439709,"user_tz":-480,"elapsed":1679,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}}},"cell_type":"code","source":["coef"],"execution_count":84,"outputs":[{"output_type":"execute_result","data":{"text/plain":["array([ 3.12213288e-04,  7.35082617e-05, -1.43682496e-06, -9.07159039e-08,\n","       -9.60998729e-08, -5.18729420e-05,  2.54719099e-07,  1.98422072e-07,\n","        5.49042472e-08, -9.08257770e-06, -1.18263344e-05, -1.95813327e-05,\n","       -2.58061447e-06, -7.01827718e-05,  2.44340665e-06, -1.94863189e-06,\n","        1.37646065e-05, -8.74557969e-06,  9.83885301e-06, -6.27764661e-06,\n","       -7.49680600e-04,  3.55618865e-05,  1.31053382e-05,  2.68003030e-05,\n","       -1.10771105e-05,  3.08583564e-06, -1.18200063e-04, -4.40650960e-06,\n","        1.26296569e-06, -2.74669453e-06,  1.70702348e-06, -2.36937325e-05,\n","       -8.47364530e-07, -8.62307714e-07,  8.28649285e-06,  2.39305540e-05,\n","       -5.18145019e-05, -7.07369925e-04,  2.08554481e-03, -7.33100297e-06,\n","       -1.44333117e-06, -5.14106175e-06, -4.12706469e-06, -2.50462594e-05,\n","       -6.91319723e-06, -7.97595672e-05, -1.52190856e-04, -9.29208514e-05,\n","       -1.19644143e-05,  6.26744280e-04,  3.75946794e-05, -1.71125508e-04,\n","        5.30220010e-04, -4.42074333e-04, -2.25039618e-04, -2.84254406e-05,\n","        1.20265477e-04,  6.57210656e-05, -1.15093765e-04,  5.94677937e-04,\n","       -1.83737434e-04, -2.03123997e-05, -7.12525197e-04, -1.53461235e-05,\n","       -3.32514899e-04,  1.15331468e-03, -1.52909058e-05, -1.17149668e-04,\n","        1.63555908e-07, -4.42261046e-05,  1.49777620e-04,  7.54901706e-07,\n","        1.37696385e-03, -9.54161119e-04, -1.97405449e-04,  2.32169163e-05,\n","        5.05146009e-05, -1.56935115e-04, -3.62773132e-06, -6.33657312e-06,\n","       -3.76029600e-04, -6.23944715e-04,  3.30640123e-04, -1.85586229e-04,\n","        2.02819685e-05,  1.02190255e-03,  7.93069331e-04, -1.02411455e-04,\n","       -1.21539930e-04, -4.29877946e-05, -7.39243641e-05,  3.18549225e-05,\n","        1.70867065e-04, -6.02455832e-04, -1.65132757e-05,  1.14217185e-03,\n","       -3.69273642e-06, -1.20501255e-04,  3.90603731e-04,  7.59975098e-08,\n","       -8.67043635e-05, -1.86228552e-04, -5.13351972e-05,  1.57298365e-05,\n","        6.38463880e-04, -2.14487965e-03,  2.87215953e-04, -9.69320875e-04,\n","       -5.04727616e-04,  6.42972501e-04,  2.17842357e-04,  8.94771201e-05,\n","       -6.34912829e-05, -1.86464979e-04,  7.17258714e-04,  6.55460522e-05,\n","        6.68779104e-05, -7.14132911e-06,  6.00845600e-05, -1.68084802e-04,\n","       -1.36651464e-06, -5.98130373e-04,  1.08788017e-03,  2.36164471e-04,\n","       -3.70624419e-05, -8.56261013e-05,  2.64303541e-04,  2.60243648e-05,\n","       -4.40633240e-05,  8.13638372e-05,  7.68734722e-06,  2.93431550e-06,\n","        2.15100745e-05,  2.49708267e-05, -9.94809026e-05,  1.29534977e-05,\n","       -1.96550914e-04,  2.34611429e-04,  4.95336629e-04, -1.22804495e-05,\n","       -2.25389614e-05,  5.28582431e-05, -2.03227173e-06,  7.80439339e-05,\n","       -5.82257114e-04,  9.14434311e-11,  1.82488680e-06, -4.05961549e-08,\n","        5.28617455e-07, -3.65280553e-05, -1.59746021e-03, -3.88028305e-04,\n","        1.59385864e-03,  9.61011628e-04,  1.88542498e-04, -9.18360792e-05,\n","       -1.33704696e-04,  4.28129136e-04, -1.19667872e-04,  1.11621070e-04,\n","        2.55115970e-04, -4.68618764e-04,  4.24932584e-04,  1.17414830e-03,\n","        4.17907312e-04,  3.73968489e-04,  1.25762437e-04, -1.19782000e-03,\n","        2.87678097e-03, -4.74818513e-07, -8.09368672e-05,  6.52144766e-04,\n","        2.92795277e-04, -8.85920935e-06, -3.45158331e-05, -1.02885907e-03,\n","       -7.76256676e-07, -4.60747507e-05,  1.08633214e-04,  4.44908009e-05,\n","        2.04656491e-04, -6.69674460e-04,  3.52861296e-06,  2.11468954e-03,\n","       -7.48650663e-04, -4.16478829e-04, -7.35047938e-04, -6.28985708e-05,\n","        3.46489205e-04, -6.78861742e-04,  3.01863667e-04,  3.20085426e-09,\n","        8.16749949e-06,  1.23939751e-05,  8.73722483e-06, -1.84675853e-03,\n","       -1.83740911e-03, -6.71676134e-04,  6.25484503e-04,  4.94539217e-04,\n","        1.03020405e-04,  6.19094431e-06,  3.97043560e-05,  1.10673774e-04,\n","        4.24768089e-08,  6.51954680e-05,  8.08789980e-07,  5.97238638e-06,\n","       -3.12194881e-04,  1.16902331e-03,  2.54791858e-06,  1.10727617e-03,\n","        5.00263606e-04,  1.58091508e-04,  4.73914702e-04, -1.70835491e-05,\n","       -8.77541308e-04, -4.88957316e-04, -7.18046248e-05, -4.29287120e-10,\n","       -2.78169994e-06,  5.34161761e-07,  9.99768123e-07,  4.11216708e-04,\n","       -1.64370239e-04,  6.22838184e-05, -6.83743527e-04, -3.60133862e-04,\n","       -3.57582654e-05,  2.11073406e-04, -4.06925789e-04, -7.26934237e-06,\n","       -5.39050381e-04,  2.06368094e-04,  1.85897094e-04, -2.68205874e-04,\n","        7.99916851e-05, -1.21904963e-04,  5.33212007e-04, -5.99708683e-04,\n","       -7.53378946e-09, -1.55514361e-05, -1.59476777e-05, -1.08400252e-05,\n","       -2.08657168e-03, -7.96904665e-04,  1.42201202e-04, -1.08028355e-03,\n","       -6.88037903e-04, -9.76092132e-05, -1.59525882e-04, -3.47957552e-04,\n","        7.08103661e-05, -1.94750665e-04,  1.31633720e-03,  5.45562296e-09,\n","        2.01046744e-04,  1.91304490e-05, -5.88376102e-07,  1.61148385e-04,\n","       -1.13547029e-05, -2.67703458e-04, -5.73976575e-04,  4.07894893e-04,\n","        2.12612050e-04,  2.29723364e-12,  1.30483265e-09,  1.16929978e-08,\n","        1.00475534e-08,  7.57922138e-06,  2.55268027e-05,  2.10319142e-05,\n","        5.86059044e-06, -2.71541004e-06, -6.13414154e-07,  8.74965167e-05,\n","       -1.06706212e-03, -5.37131217e-04, -4.46401742e-05, -3.64193870e-04,\n","       -1.03349482e-04,  9.78111791e-04,  8.11860865e-04,  2.33949319e-04,\n","        2.10854049e-05,  6.27223044e-07, -2.14054731e-06, -4.07776347e-05,\n","        1.12820446e-08, -2.50368015e-07, -9.86065549e-06, -7.78987599e-06,\n","        1.37331852e-05, -2.70488354e-04,  1.42516292e-07,  1.68837382e-05,\n","       -5.34397653e-05, -1.37771607e-05,  9.33649256e-04, -2.98088646e-06,\n","        1.21640502e-04,  3.96270582e-04,  8.77245490e-05,  2.28691948e-11,\n","       -1.05047985e-08,  1.01467393e-07,  1.87507953e-07,  1.71092109e-05,\n","        5.27412386e-05,  2.77139416e-05, -5.01322399e-05, -2.87036210e-05,\n","       -6.79790296e-06,  1.44266815e-04, -1.19265462e-03, -1.40705423e-06,\n","        1.59149918e-04, -2.84478495e-04, -7.93361019e-05,  2.43841981e-03,\n","        6.69774103e-06, -7.33989273e-04,  1.44858909e-03,  2.92952861e-04,\n","        1.14658897e-09,  6.52536857e-06, -8.57520915e-07, -5.80660266e-07,\n","       -1.38863885e-04,  1.20987279e-03,  4.22952722e-04,  4.76487451e-04,\n","        2.74341289e-04,  3.48204128e-05,  1.23370877e-03, -1.45478264e-05,\n","        4.97045812e-04,  1.26335384e-04,  6.36521786e-04, -1.62363860e-08,\n","       -2.58964908e-05,  2.44252615e-05,  1.41961733e-05,  4.17056473e-03,\n","        1.26461013e-04,  1.86654030e-04,  7.57932684e-04,  8.37347091e-04,\n","        1.84226479e-04, -3.21036702e-14,  5.46440021e-11, -3.16853536e-10,\n","        4.46134180e-10, -6.91090161e-09, -2.57114362e-06, -1.54274076e-06,\n","       -3.37053186e-06, -3.43855935e-06, -6.49334227e-07, -1.36686918e-04,\n","       -3.98336991e-04, -9.48711037e-05, -1.17375819e-03, -7.04846044e-04,\n","       -1.21183512e-04,  1.81275446e-04,  9.89372413e-05,  5.23200899e-07,\n","       -5.30456935e-06, -1.03045332e-05,  1.05898427e-04,  1.56423858e-06,\n","        8.40904217e-04,  1.32387370e-04,  8.47116482e-05, -1.99935094e-04,\n","       -2.78765921e-05, -3.75038204e-03, -9.79499743e-04, -4.26207636e-04,\n","        7.68158496e-09,  3.49986932e-05,  4.80963404e-06,  2.99130142e-06,\n","       -7.46614057e-04,  9.17093550e-04,  2.99656185e-04,  8.09251719e-05,\n","        9.65034744e-05,  3.92900994e-05, -3.47924325e-04,  1.78611067e-04,\n","       -1.33055781e-03, -3.75317079e-04, -5.55515920e-04, -1.10125221e-07,\n","       -3.52093561e-04, -9.21867573e-05, -3.50733425e-05,  2.11086129e-04,\n","       -1.72224889e-04,  2.44285839e-04,  6.31205527e-04, -1.09253680e-04,\n","       -1.64665699e-04, -3.78399539e-12, -3.23127409e-10, -2.78192494e-08,\n","       -2.05583460e-08, -1.09615409e-05, -2.75801380e-05, -1.36797629e-05,\n","       -1.43739339e-05, -2.62399733e-06, -2.36554191e-07,  8.99844990e-04,\n","        7.28672079e-04,  2.36891982e-04, -6.21040973e-04,  1.11470510e-05,\n","        8.55411312e-05, -2.57278356e-03, -2.44956656e-03, -7.79761439e-04,\n","       -8.16609406e-05, -2.30241959e-04, -3.60945961e-04, -3.57998139e-04,\n","       -5.61471939e-04,  1.08448013e-03,  4.00515911e-07,  1.20939168e-03,\n","        3.99909416e-04,  1.44172814e-04,  4.41044589e-05,  6.91851555e-04,\n","       -2.55807047e-03, -3.80111775e-04,  8.13631291e-04,  3.96609731e-04,\n","        3.88757323e-11,  1.50858108e-07,  2.51501526e-07,  1.92527886e-07,\n","        5.66956054e-05,  2.76791002e-04,  9.57703166e-05,  5.60666066e-05,\n","        5.75458943e-05,  1.58409018e-05, -1.97553697e-03,  1.58485865e-04,\n","        2.29225391e-04, -4.43899266e-04,  6.33854220e-04,  1.88751296e-04,\n","       -4.66599069e-04,  3.69049592e-05,  2.41817417e-04,  5.12057424e-05,\n","        2.30691117e-16,  8.86293364e-13,  1.66607743e-12,  1.58123411e-12,\n","       -7.94182228e-09,  2.37254272e-08,  2.32582599e-08, -1.21998389e-09,\n","        1.00599957e-09,  3.30995104e-09,  6.68993762e-07, -5.32123466e-06,\n","       -1.82766062e-06,  4.09521628e-06, -8.46422786e-06, -2.06407566e-06,\n","        1.37047388e-05,  2.56645226e-05,  1.19113044e-05,  1.83892072e-06,\n","        1.64176132e-06,  5.06722640e-04,  1.85199369e-04,  2.78285672e-04,\n","        6.20729791e-05,  2.98690268e-06,  5.45841240e-04,  1.55998861e-04,\n","       -4.22643114e-05, -9.46604678e-06, -8.70987727e-03, -1.07661235e-02,\n","       -4.98503765e-03, -1.01751012e-03, -7.59844382e-05])"]},"metadata":{"tags":[]},"execution_count":84}]},{"metadata":{"id":"CGz8c43hVWQU","colab_type":"code","outputId":"89b523cb-6bf9-4366-96df-57bd791f430b","colab":{"base_uri":"https://localhost:8080/","height":8432},"executionInfo":{"status":"ok","timestamp":1551680442772,"user_tz":-480,"elapsed":1080,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}}},"cell_type":"code","source":["[*zip(poly.get_feature_names(X.columns),reg.coef_)]"],"execution_count":85,"outputs":[{"output_type":"execute_result","data":{"text/plain":["[('1', 0.0003122132882572444),\n"," ('住户收入中位数', 7.350826168137365e-05),\n"," ('房屋使用年代中位数', -1.436824960798885e-06),\n"," ('平均房间数目', -9.071590392368281e-08),\n"," ('平均卧室数目', -9.609987290184909e-08),\n"," ('街区人口', -5.187294199116326e-05),\n"," ('平均入住率', 2.547190990481237e-07),\n"," ('街区的纬度', 1.9842207195726306e-07),\n"," ('街区的经度', 5.4904247173494565e-08),\n"," ('住户收入中位数^2', -9.082577699288282e-06),\n"," ('住户收入中位数 房屋使用年代中位数', -1.1826334375981058e-05),\n"," ('住户收入中位数 平均房间数目', -1.9581332718965664e-05),\n"," ('住户收入中位数 平均卧室数目', -2.580614466310512e-06),\n"," ('住户收入中位数 街区人口', -7.018277178648135e-05),\n"," ('住户收入中位数 平均入住率', 2.443406651161371e-06),\n"," ('住户收入中位数 街区的纬度', -1.9486318943631067e-06),\n"," ('住户收入中位数 街区的经度', 1.3764606503124826e-05),\n"," ('房屋使用年代中位数^2', -8.745579694973752e-06),\n"," ('房屋使用年代中位数 平均房间数目', 9.838853014885111e-06),\n"," ('房屋使用年代中位数 平均卧室数目', -6.277646613363241e-06),\n"," ('房屋使用年代中位数 街区人口', -0.0007496805999893463),\n"," ('房屋使用年代中位数 平均入住率', 3.5561886462606466e-05),\n"," ('房屋使用年代中位数 街区的纬度', 1.3105338175405133e-05),\n"," ('房屋使用年代中位数 街区的经度', 2.6800303005859923e-05),\n"," ('平均房间数目^2', -1.1077110470995632e-05),\n"," ('平均房间数目 平均卧室数目', 3.0858356398246573e-06),\n"," ('平均房间数目 街区人口', -0.00011820006315675326),\n"," ('平均房间数目 平均入住率', -4.406509597669498e-06),\n"," ('平均房间数目 街区的纬度', 1.2629656877110007e-06),\n"," ('平均房间数目 街区的经度', -2.7466945252114883e-06),\n"," ('平均卧室数目^2', 1.707023477134483e-06),\n"," ('平均卧室数目 街区人口', -2.3693732493171524e-05),\n"," ('平均卧室数目 平均入住率', -8.473645295864821e-07),\n"," ('平均卧室数目 街区的纬度', -8.623077140329166e-07),\n"," ('平均卧室数目 街区的经度', 8.286492845565853e-06),\n"," ('街区人口^2', 2.393055396352152e-05),\n"," ('街区人口 平均入住率', -5.181450194994862e-05),\n"," ('街区人口 街区的纬度', -0.0007073699251444679),\n"," ('街区人口 街区的经度', 0.0020855448085703673),\n"," ('平均入住率^2', -7.331002971134412e-06),\n"," ('平均入住率 街区的纬度', -1.4433311653147904e-06),\n"," ('平均入住率 街区的经度', -5.1410617536033274e-06),\n"," ('街区的纬度^2', -4.127064691959421e-06),\n"," ('街区的纬度 街区的经度', -2.5046259358194332e-05),\n"," ('街区的经度^2', -6.91319722521349e-06),\n"," ('住户收入中位数^3', -7.975956716933337e-05),\n"," ('住户收入中位数^2 房屋使用年代中位数', -0.00015219085590518675),\n"," ('住户收入中位数^2 平均房间数目', -9.292085144502429e-05),\n"," ('住户收入中位数^2 平均卧室数目', -1.1964414310579765e-05),\n"," ('住户收入中位数^2 街区人口', 0.000626744279975414),\n"," ('住户收入中位数^2 平均入住率', 3.759467941919493e-05),\n"," ('住户收入中位数^2 街区的纬度', -0.0001711255078192393),\n"," ('住户收入中位数^2 街区的经度', 0.0005302200096254223),\n"," ('住户收入中位数 房屋使用年代中位数^2', -0.0004420743329371738),\n"," ('住户收入中位数 房屋使用年代中位数 平均房间数目', -0.00022503961841384876),\n"," ('住户收入中位数 房屋使用年代中位数 平均卧室数目', -2.8425440640321783e-05),\n"," ('住户收入中位数 房屋使用年代中位数 街区人口', 0.00012026547716884717),\n"," ('住户收入中位数 房屋使用年代中位数 平均入住率', 6.572106564048463e-05),\n"," ('住户收入中位数 房屋使用年代中位数 街区的纬度', -0.00011509376469402207),\n"," ('住户收入中位数 房屋使用年代中位数 街区的经度', 0.0005946779373367931),\n"," ('住户收入中位数 平均房间数目^2', -0.00018373743367199483),\n"," ('住户收入中位数 平均房间数目 平均卧室数目', -2.0312399672373018e-05),\n"," ('住户收入中位数 平均房间数目 街区人口', -0.0007125251968594668),\n"," ('住户收入中位数 平均房间数目 平均入住率', -1.5346123451559158e-05),\n"," ('住户收入中位数 平均房间数目 街区的纬度', -0.000332514898729952),\n"," ('住户收入中位数 平均房间数目 街区的经度', 0.0011533146806162865),\n"," ('住户收入中位数 平均卧室数目^2', -1.529090576074237e-05),\n"," ('住户收入中位数 平均卧室数目 街区人口', -0.00011714966784257757),\n"," ('住户收入中位数 平均卧室数目 平均入住率', 1.635559084181247e-07),\n"," ('住户收入中位数 平均卧室数目 街区的纬度', -4.422610464134465e-05),\n"," ('住户收入中位数 平均卧室数目 街区的经度', 0.00014977761976049517),\n"," ('住户收入中位数 街区人口^2', 7.549017059788915e-07),\n"," ('住户收入中位数 街区人口 平均入住率', 0.001376963846200058),\n"," ('住户收入中位数 街区人口 街区的纬度', -0.0009541611190407734),\n"," ('住户收入中位数 街区人口 街区的经度', -0.0001974054491045244),\n"," ('住户收入中位数 平均入住率^2', 2.3216916339227342e-05),\n"," ('住户收入中位数 平均入住率 街区的纬度', 5.051460093199581e-05),\n"," ('住户收入中位数 平均入住率 街区的经度', -0.0001569351154623431),\n"," ('住户收入中位数 街区的纬度^2', -3.6277313165051625e-06),\n"," ('住户收入中位数 街区的纬度 街区的经度', -6.336573116735154e-06),\n"," ('住户收入中位数 街区的经度^2', -0.0003760295998008341),\n"," ('房屋使用年代中位数^3', -0.0006239447154461768),\n"," ('房屋使用年代中位数^2 平均房间数目', 0.000330640123161734),\n"," ('房屋使用年代中位数^2 平均卧室数目', -0.0001855862291479692),\n"," ('房屋使用年代中位数^2 街区人口', 2.0281968523165352e-05),\n"," ('房屋使用年代中位数^2 平均入住率', 0.0010219025544024307),\n"," ('房屋使用年代中位数^2 街区的纬度', 0.0007930693307262697),\n"," ('房屋使用年代中位数^2 街区的经度', -0.00010241145478415225),\n"," ('房屋使用年代中位数 平均房间数目^2', -0.00012153992975124475),\n"," ('房屋使用年代中位数 平均房间数目 平均卧室数目', -4.2987794633246316e-05),\n"," ('房屋使用年代中位数 平均房间数目 街区人口', -7.392436412368759e-05),\n"," ('房屋使用年代中位数 平均房间数目 平均入住率', 3.185492245922497e-05),\n"," ('房屋使用年代中位数 平均房间数目 街区的纬度', 0.00017086706470022681),\n"," ('房屋使用年代中位数 平均房间数目 街区的经度', -0.0006024558316061435),\n"," ('房屋使用年代中位数 平均卧室数目^2', -1.651327565011487e-05),\n"," ('房屋使用年代中位数 平均卧室数目 街区人口', 0.0011421718492231575),\n"," ('房屋使用年代中位数 平均卧室数目 平均入住率', -3.6927364170647075e-06),\n"," ('房屋使用年代中位数 平均卧室数目 街区的纬度', -0.00012050125493414135),\n"," ('房屋使用年代中位数 平均卧室数目 街区的经度', 0.00039060373107514904),\n"," ('房屋使用年代中位数 街区人口^2', 7.599750982642544e-08),\n"," ('房屋使用年代中位数 街区人口 平均入住率', -8.67043635047131e-05),\n"," ('房屋使用年代中位数 街区人口 街区的纬度', -0.00018622855181912846),\n"," ('房屋使用年代中位数 街区人口 街区的经度', -5.133519721164818e-05),\n"," ('房屋使用年代中位数 平均入住率^2', 1.5729836484801826e-05),\n"," ('房屋使用年代中位数 平均入住率 街区的纬度', 0.0006384638797408498),\n"," ('房屋使用年代中位数 平均入住率 街区的经度', -0.002144879647254522),\n"," ('房屋使用年代中位数 街区的纬度^2', 0.00028721595338271805),\n"," ('房屋使用年代中位数 街区的纬度 街区的经度', -0.0009693208747346058),\n"," ('房屋使用年代中位数 街区的经度^2', -0.0005047276158101043),\n"," ('平均房间数目^3', 0.0006429725012941282),\n"," ('平均房间数目^2 平均卧室数目', 0.0002178423566688965),\n"," ('平均房间数目^2 街区人口', 8.947712005753454e-05),\n"," ('平均房间数目^2 平均入住率', -6.349128291400778e-05),\n"," ('平均房间数目^2 街区的纬度', -0.0001864649791678773),\n"," ('平均房间数目^2 街区的经度', 0.0007172587139392481),\n"," ('平均房间数目 平均卧室数目^2', 6.554605224987194e-05),\n"," ('平均房间数目 平均卧室数目 街区人口', 6.687791041016067e-05),\n"," ('平均房间数目 平均卧室数目 平均入住率', -7.141329113944484e-06),\n"," ('平均房间数目 平均卧室数目 街区的纬度', 6.00845599889322e-05),\n"," ('平均房间数目 平均卧室数目 街区的经度', -0.00016808480170064558),\n"," ('平均房间数目 街区人口^2', -1.3665146432134712e-06),\n"," ('平均房间数目 街区人口 平均入住率', -0.0005981303734590833),\n"," ('平均房间数目 街区人口 街区的纬度', 0.0010878801735369184),\n"," ('平均房间数目 街区人口 街区的经度', 0.00023616447108108774),\n"," ('平均房间数目 平均入住率^2', -3.7062441890819473e-05),\n"," ('平均房间数目 平均入住率 街区的纬度', -8.56261012982563e-05),\n"," ('平均房间数目 平均入住率 街区的经度', 0.00026430354122470055),\n"," ('平均房间数目 街区的纬度^2', 2.602436475309976e-05),\n"," ('平均房间数目 街区的纬度 街区的经度', -4.406332397002277e-05),\n"," ('平均房间数目 街区的经度^2', 8.13638371563881e-05),\n"," ('平均卧室数目^3', 7.687347220704313e-06),\n"," ('平均卧室数目^2 街区人口', 2.934315496794385e-06),\n"," ('平均卧室数目^2 平均入住率', 2.1510074505200816e-05),\n"," ('平均卧室数目^2 街区的纬度', 2.4970826687705697e-05),\n"," ('平均卧室数目^2 街区的经度', -9.948090257581425e-05),\n"," ('平均卧室数目 街区人口^2', 1.2953497746510303e-05),\n"," ('平均卧室数目 街区人口 平均入住率', -0.0001965509142723433),\n"," ('平均卧室数目 街区人口 街区的纬度', 0.00023461142909610077),\n"," ('平均卧室数目 街区人口 街区的经度', 0.0004953366287390203),\n"," ('平均卧室数目 平均入住率^2', -1.2280449496247394e-05),\n"," ('平均卧室数目 平均入住率 街区的纬度', -2.2538961414921965e-05),\n"," ('平均卧室数目 平均入住率 街区的经度', 5.285824314841469e-05),\n"," ('平均卧室数目 街区的纬度^2', -2.0322717335200213e-06),\n"," ('平均卧室数目 街区的纬度 街区的经度', 7.804393386151764e-05),\n"," ('平均卧室数目 街区的经度^2', -0.000582257114365609),\n"," ('街区人口^3', 9.144343106077396e-11),\n"," ('街区人口^2 平均入住率', 1.8248868012757454e-06),\n"," ('街区人口^2 街区的纬度', -4.0596154879118666e-08),\n"," ('街区人口^2 街区的经度', 5.28617454572803e-07),\n"," ('街区人口 平均入住率^2', -3.652805526805909e-05),\n"," ('街区人口 平均入住率 街区的纬度', -0.00159746020769203),\n"," ('街区人口 平均入住率 街区的经度', -0.0003880283054371742),\n"," ('街区人口 街区的纬度^2', 0.0015938586389978573),\n"," ('街区人口 街区的纬度 街区的经度', 0.0009610116278137673),\n"," ('街区人口 街区的经度^2', 0.0001885424975526),\n"," ('平均入住率^3', -9.183607916841596e-05),\n"," ('平均入住率^2 街区的纬度', -0.00013370469639279763),\n"," ('平均入住率^2 街区的经度', 0.000428129136035554),\n"," ('平均入住率 街区的纬度^2', -0.00011966787212476259),\n"," ('平均入住率 街区的纬度 街区的经度', 0.00011162107013972794),\n"," ('平均入住率 街区的经度^2', 0.00025511597043096506),\n"," ('街区的纬度^3', -0.00046861876392631117),\n"," ('街区的纬度^2 街区的经度', 0.0004249325838885722),\n"," ('街区的纬度 街区的经度^2', 0.0011741483023721732),\n"," ('街区的经度^3', 0.00041790731176384463),\n"," ('住户收入中位数^4', 0.000373968489467692),\n"," ('住户收入中位数^3 房屋使用年代中位数', 0.00012576243654068776),\n"," ('住户收入中位数^3 平均房间数目', -0.0011978199953692494),\n"," ('住户收入中位数^3 平均卧室数目', 0.00287678096920041),\n"," ('住户收入中位数^3 街区人口', -4.7481851329377804e-07),\n"," ('住户收入中位数^3 平均入住率', -8.093686718938356e-05),\n"," ('住户收入中位数^3 街区的纬度', 0.0006521447659904149),\n"," ('住户收入中位数^3 街区的经度', 0.00029279527748932827),\n"," ('住户收入中位数^2 房屋使用年代中位数^2', -8.85920934879551e-06),\n"," ('住户收入中位数^2 房屋使用年代中位数 平均房间数目', -3.45158331189415e-05),\n"," ('住户收入中位数^2 房屋使用年代中位数 平均卧室数目', -0.0010288590694590954),\n"," ('住户收入中位数^2 房屋使用年代中位数 街区人口', -7.762566759316331e-07),\n"," ('住户收入中位数^2 房屋使用年代中位数 平均入住率', -4.6074750672051734e-05),\n"," ('住户收入中位数^2 房屋使用年代中位数 街区的纬度', 0.0001086332138671586),\n"," ('住户收入中位数^2 房屋使用年代中位数 街区的经度', 4.4490800943223714e-05),\n"," ('住户收入中位数^2 平均房间数目^2', 0.00020465649065042892),\n"," ('住户收入中位数^2 平均房间数目 平均卧室数目', -0.0006696744597681767),\n"," ('住户收入中位数^2 平均房间数目 街区人口', 3.528612957842997e-06),\n"," ('住户收入中位数^2 平均房间数目 平均入住率', 0.0021146895360838504),\n"," ('住户收入中位数^2 平均房间数目 街区的纬度', -0.0007486506632055179),\n"," ('住户收入中位数^2 平均房间数目 街区的经度', -0.0004164788293863973),\n"," ('住户收入中位数^2 平均卧室数目^2', -0.0007350479380477602),\n"," ('住户收入中位数^2 平均卧室数目 街区人口', -6.289857079012451e-05),\n"," ('住户收入中位数^2 平均卧室数目 平均入住率', 0.0003464892051715175),\n"," ('住户收入中位数^2 平均卧室数目 街区的纬度', -0.00067886174218691),\n"," ('住户收入中位数^2 平均卧室数目 街区的经度', 0.0003018636666766434),\n"," ('住户收入中位数^2 街区人口^2', 3.2008542629191887e-09),\n"," ('住户收入中位数^2 街区人口 平均入住率', 8.16749948853693e-06),\n"," ('住户收入中位数^2 街区人口 街区的纬度', 1.2393975132738628e-05),\n"," ('住户收入中位数^2 街区人口 街区的经度', 8.737224830399094e-06),\n"," ('住户收入中位数^2 平均入住率^2', -0.001846758529529889),\n"," ('住户收入中位数^2 平均入住率 街区的纬度', -0.0018374091104127516),\n"," ('住户收入中位数^2 平均入住率 街区的经度', -0.0006716761335625558),\n"," ('住户收入中位数^2 街区的纬度^2', 0.0006254845025293452),\n"," ('住户收入中位数^2 街区的纬度 街区的经度', 0.0004945392167640889),\n"," ('住户收入中位数^2 街区的经度^2', 0.00010302040477698508),\n"," ('住户收入中位数 房屋使用年代中位数^3', 6.190944314766642e-06),\n"," ('住户收入中位数 房屋使用年代中位数^2 平均房间数目', 3.970435600006893e-05),\n"," ('住户收入中位数 房屋使用年代中位数^2 平均卧室数目', 0.00011067377428532393),\n"," ('住户收入中位数 房屋使用年代中位数^2 街区人口', 4.247680894405947e-08),\n"," ('住户收入中位数 房屋使用年代中位数^2 平均入住率', 6.519546795967714e-05),\n"," ('住户收入中位数 房屋使用年代中位数^2 街区的纬度', 8.087899801238698e-07),\n"," ('住户收入中位数 房屋使用年代中位数^2 街区的经度', 5.972386382026645e-06),\n"," ('住户收入中位数 房屋使用年代中位数 平均房间数目^2', -0.0003121948813523675),\n"," ('住户收入中位数 房屋使用年代中位数 平均房间数目 平均卧室数目', 0.0011690233105100519),\n"," ('住户收入中位数 房屋使用年代中位数 平均房间数目 街区人口', 2.5479185819577877e-06),\n"," ('住户收入中位数 房屋使用年代中位数 平均房间数目 平均入住率', 0.0011072761745991734),\n"," ('住户收入中位数 房屋使用年代中位数 平均房间数目 街区的纬度', 0.0005002636060017825),\n"," ('住户收入中位数 房屋使用年代中位数 平均房间数目 街区的经度', 0.0001580915084580494),\n"," ('住户收入中位数 房屋使用年代中位数 平均卧室数目^2', 0.0004739147015672854),\n"," ('住户收入中位数 房屋使用年代中位数 平均卧室数目 街区人口', -1.7083549106901766e-05),\n"," ('住户收入中位数 房屋使用年代中位数 平均卧室数目 平均入住率', -0.0008775413077584666),\n"," ('住户收入中位数 房屋使用年代中位数 平均卧室数目 街区的纬度', -0.0004889573157666246),\n"," ('住户收入中位数 房屋使用年代中位数 平均卧室数目 街区的经度', -7.180462484054265e-05),\n"," ('住户收入中位数 房屋使用年代中位数 街区人口^2', -4.2928711965956913e-10),\n"," ('住户收入中位数 房屋使用年代中位数 街区人口 平均入住率', -2.7816999420226615e-06),\n"," ('住户收入中位数 房屋使用年代中位数 街区人口 街区的纬度', 5.341617612008158e-07),\n"," ('住户收入中位数 房屋使用年代中位数 街区人口 街区的经度', 9.997681231591183e-07),\n"," ('住户收入中位数 房屋使用年代中位数 平均入住率^2', 0.00041121670756934296),\n"," ('住户收入中位数 房屋使用年代中位数 平均入住率 街区的纬度', -0.00016437023906417677),\n"," ('住户收入中位数 房屋使用年代中位数 平均入住率 街区的经度', 6.228381838174349e-05),\n"," ('住户收入中位数 房屋使用年代中位数 街区的纬度^2', -0.0006837435268098323),\n"," ('住户收入中位数 房屋使用年代中位数 街区的纬度 街区的经度', -0.00036013386226868576),\n"," ('住户收入中位数 房屋使用年代中位数 街区的经度^2', -3.5758265395948e-05),\n"," ('住户收入中位数 平均房间数目^3', 0.0002110734062632173),\n"," ('住户收入中位数 平均房间数目^2 平均卧室数目', -0.0004069257894909448),\n"," ('住户收入中位数 平均房间数目^2 街区人口', -7.269342374945321e-06),\n"," ('住户收入中位数 平均房间数目^2 平均入住率', -0.0005390503813955204),\n"," ('住户收入中位数 平均房间数目^2 街区的纬度', 0.0002063680944502624),\n"," ('住户收入中位数 平均房间数目^2 街区的经度', 0.0001858970937875476),\n"," ('住户收入中位数 平均房间数目 平均卧室数目^2', -0.0002682058739914292),\n"," ('住户收入中位数 平均房间数目 平均卧室数目 街区人口', 7.999168510504694e-05),\n"," ('住户收入中位数 平均房间数目 平均卧室数目 平均入住率', -0.00012190496282089672),\n"," ('住户收入中位数 平均房间数目 平均卧室数目 街区的纬度', 0.0005332120067621613),\n"," ('住户收入中位数 平均房间数目 平均卧室数目 街区的经度', -0.000599708682763221),\n"," ('住户收入中位数 平均房间数目 街区人口^2', -7.533789455929879e-09),\n"," ('住户收入中位数 平均房间数目 街区人口 平均入住率', -1.555143609592669e-05),\n"," ('住户收入中位数 平均房间数目 街区人口 街区的纬度', -1.5947677670639654e-05),\n"," ('住户收入中位数 平均房间数目 街区人口 街区的经度', -1.0840025207715387e-05),\n"," ('住户收入中位数 平均房间数目 平均入住率^2', -0.0020865716802716044),\n"," ('住户收入中位数 平均房间数目 平均入住率 街区的纬度', -0.0007969046651767987),\n"," ('住户收入中位数 平均房间数目 平均入住率 街区的经度', 0.00014220120150199155),\n"," ('住户收入中位数 平均房间数目 街区的纬度^2', -0.0010802835540394326),\n"," ('住户收入中位数 平均房间数目 街区的纬度 街区的经度', -0.0006880379033458265),\n"," ('住户收入中位数 平均房间数目 街区的经度^2', -9.760921323057956e-05),\n"," ('住户收入中位数 平均卧室数目^3', -0.00015952588197153055),\n"," ('住户收入中位数 平均卧室数目^2 街区人口', -0.00034795755151719826),\n"," ('住户收入中位数 平均卧室数目^2 平均入住率', 7.081036609627054e-05),\n"," ('住户收入中位数 平均卧室数目^2 街区的纬度', -0.0001947506649471618),\n"," ('住户收入中位数 平均卧室数目^2 街区的经度', 0.0013163372041862767),\n"," ('住户收入中位数 平均卧室数目 街区人口^2', 5.455622964799059e-09),\n"," ('住户收入中位数 平均卧室数目 街区人口 平均入住率', 0.00020104674390327606),\n"," ('住户收入中位数 平均卧室数目 街区人口 街区的纬度', 1.9130449020584906e-05),\n"," ('住户收入中位数 平均卧室数目 街区人口 街区的经度', -5.883761015003783e-07),\n"," ('住户收入中位数 平均卧室数目 平均入住率^2', 0.00016114838526094729),\n"," ('住户收入中位数 平均卧室数目 平均入住率 街区的纬度', -1.135470287021532e-05),\n"," ('住户收入中位数 平均卧室数目 平均入住率 街区的经度', -0.0002677034576254885),\n"," ('住户收入中位数 平均卧室数目 街区的纬度^2', -0.0005739765749661265),\n"," ('住户收入中位数 平均卧室数目 街区的纬度 街区的经度', 0.0004078948927438834),\n"," ('住户收入中位数 平均卧室数目 街区的经度^2', 0.00021261204995474462),\n"," ('住户收入中位数 街区人口^3', 2.2972336432067328e-12),\n"," ('住户收入中位数 街区人口^2 平均入住率', 1.3048326478371059e-09),\n"," ('住户收入中位数 街区人口^2 街区的纬度', 1.1692997810988453e-08),\n"," ('住户收入中位数 街区人口^2 街区的经度', 1.0047553364046216e-08),\n"," ('住户收入中位数 街区人口 平均入住率^2', 7.579221379950054e-06),\n"," ('住户收入中位数 街区人口 平均入住率 街区的纬度', 2.5526802658182533e-05),\n"," ('住户收入中位数 街区人口 平均入住率 街区的经度', 2.1031914193796408e-05),\n"," ('住户收入中位数 街区人口 街区的纬度^2', 5.860590441052936e-06),\n"," ('住户收入中位数 街区人口 街区的纬度 街区的经度', -2.715410035388286e-06),\n"," ('住户收入中位数 街区人口 街区的经度^2', -6.134141544343757e-07),\n"," ('住户收入中位数 平均入住率^3', 8.749651670432012e-05),\n"," ('住户收入中位数 平均入住率^2 街区的纬度', -0.0010670621247789675),\n"," ('住户收入中位数 平均入住率^2 街区的经度', -0.0005371312168143266),\n"," ('住户收入中位数 平均入住率 街区的纬度^2', -4.464017417131547e-05),\n"," ('住户收入中位数 平均入住率 街区的纬度 街区的经度', -0.0003641938702307985),\n"," ('住户收入中位数 平均入住率 街区的经度^2', -0.00010334948237753997),\n"," ('住户收入中位数 街区的纬度^3', 0.0009781117909136159),\n"," ('住户收入中位数 街区的纬度^2 街区的经度', 0.0008118608647986647),\n"," ('住户收入中位数 街区的纬度 街区的经度^2', 0.00023394931854043297),\n"," ('住户收入中位数 街区的经度^3', 2.108540493027672e-05),\n"," ('房屋使用年代中位数^4', 6.272230436005241e-07),\n"," ('房屋使用年代中位数^3 平均房间数目', -2.1405473138631385e-06),\n"," ('房屋使用年代中位数^3 平均卧室数目', -4.077763467077555e-05),\n"," ('房屋使用年代中位数^3 街区人口', 1.12820446205828e-08),\n"," ('房屋使用年代中位数^3 平均入住率', -2.5036801512651584e-07),\n"," ('房屋使用年代中位数^3 街区的纬度', -9.860655487328348e-06),\n"," ('房屋使用年代中位数^3 街区的经度', -7.789875994346683e-06),\n"," ('房屋使用年代中位数^2 平均房间数目^2', 1.3733185196379796e-05),\n"," ('房屋使用年代中位数^2 平均房间数目 平均卧室数目', -0.00027048835372874805),\n"," ('房屋使用年代中位数^2 平均房间数目 街区人口', 1.4251629244974795e-07),\n"," ('房屋使用年代中位数^2 平均房间数目 平均入住率', 1.6883738167968995e-05),\n"," ('房屋使用年代中位数^2 平均房间数目 街区的纬度', -5.3439765291633695e-05),\n"," ('房屋使用年代中位数^2 平均房间数目 街区的经度', -1.377716073738385e-05),\n"," ('房屋使用年代中位数^2 平均卧室数目^2', 0.0009336492556423666),\n"," ('房屋使用年代中位数^2 平均卧室数目 街区人口', -2.9808864574859725e-06),\n"," ('房屋使用年代中位数^2 平均卧室数目 平均入住率', 0.00012164050154467101),\n"," ('房屋使用年代中位数^2 平均卧室数目 街区的纬度', 0.0003962705819160463),\n"," ('房屋使用年代中位数^2 平均卧室数目 街区的经度', 8.7724548965263e-05),\n"," ('房屋使用年代中位数^2 街区人口^2', 2.286919481911398e-11),\n"," ('房屋使用年代中位数^2 街区人口 平均入住率', -1.050479847783795e-08),\n"," ('房屋使用年代中位数^2 街区人口 街区的纬度', 1.0146739303363355e-07),\n"," ('房屋使用年代中位数^2 街区人口 街区的经度', 1.8750795338704477e-07),\n"," ('房屋使用年代中位数^2 平均入住率^2', 1.7109210878430015e-05),\n"," ('房屋使用年代中位数^2 平均入住率 街区的纬度', 5.274123856148967e-05),\n"," ('房屋使用年代中位数^2 平均入住率 街区的经度', 2.7713941580837615e-05),\n"," ('房屋使用年代中位数^2 街区的纬度^2', -5.0132239914011306e-05),\n"," ('房屋使用年代中位数^2 街区的纬度 街区的经度', -2.8703620953580702e-05),\n"," ('房屋使用年代中位数^2 街区的经度^2', -6.797902958628547e-06),\n"," ('房屋使用年代中位数 平均房间数目^3', 0.00014426681475401614),\n"," ('房屋使用年代中位数 平均房间数目^2 平均卧室数目', -0.0011926546244286408),\n"," ('房屋使用年代中位数 平均房间数目^2 街区人口', -1.407054232636586e-06),\n"," ('房屋使用年代中位数 平均房间数目^2 平均入住率', 0.000159149917832959),\n"," ('房屋使用年代中位数 平均房间数目^2 街区的纬度', -0.0002844784954093958),\n"," ('房屋使用年代中位数 平均房间数目^2 街区的经度', -7.933610187247758e-05),\n"," ('房屋使用年代中位数 平均房间数目 平均卧室数目^2', 0.0024384198063464404),\n"," ('房屋使用年代中位数 平均房间数目 平均卧室数目 街区人口', 6.697741030367641e-06),\n"," ('房屋使用年代中位数 平均房间数目 平均卧室数目 平均入住率', -0.0007339892727403963),\n"," ('房屋使用年代中位数 平均房间数目 平均卧室数目 街区的纬度', 0.0014485890936970904),\n"," ('房屋使用年代中位数 平均房间数目 平均卧室数目 街区的经度', 0.0002929528609854425),\n"," ('房屋使用年代中位数 平均房间数目 街区人口^2', 1.1465889746171704e-09),\n"," ('房屋使用年代中位数 平均房间数目 街区人口 平均入住率', 6.525368570151299e-06),\n"," ('房屋使用年代中位数 平均房间数目 街区人口 街区的纬度', -8.575209147427476e-07),\n"," ('房屋使用年代中位数 平均房间数目 街区人口 街区的经度', -5.806602658793155e-07),\n"," ('房屋使用年代中位数 平均房间数目 平均入住率^2', -0.00013886388486921265),\n"," ('房屋使用年代中位数 平均房间数目 平均入住率 街区的纬度', 0.0012098727903097294),\n"," ('房屋使用年代中位数 平均房间数目 平均入住率 街区的经度', 0.0004229527218314221),\n"," ('房屋使用年代中位数 平均房间数目 街区的纬度^2', 0.00047648745114673807),\n"," ('房屋使用年代中位数 平均房间数目 街区的纬度 街区的经度', 0.00027434128857934043),\n"," ('房屋使用年代中位数 平均房间数目 街区的经度^2', 3.4820412783484384e-05),\n"," ('房屋使用年代中位数 平均卧室数目^3', 0.001233708768891363),\n"," ('房屋使用年代中位数 平均卧室数目^2 街区人口', -1.4547826426401676e-05),\n"," ('房屋使用年代中位数 平均卧室数目^2 平均入住率', 0.0004970458117173547),\n"," ('房屋使用年代中位数 平均卧室数目^2 街区的纬度', 0.00012633538437676822),\n"," ('房屋使用年代中位数 平均卧室数目^2 街区的经度', 0.000636521786320458),\n"," ('房屋使用年代中位数 平均卧室数目 街区人口^2', -1.6236386049238248e-08),\n"," ('房屋使用年代中位数 平均卧室数目 街区人口 平均入住率', -2.589649076955998e-05),\n"," ('房屋使用年代中位数 平均卧室数目 街区人口 街区的纬度', 2.4425261493518893e-05),\n"," ('房屋使用年代中位数 平均卧室数目 街区人口 街区的经度', 1.4196173253842604e-05),\n"," ('房屋使用年代中位数 平均卧室数目 平均入住率^2', 0.004170564726069862),\n"," ('房屋使用年代中位数 平均卧室数目 平均入住率 街区的纬度', 0.000126461012574201),\n"," ('房屋使用年代中位数 平均卧室数目 平均入住率 街区的经度', 0.0001866540298927743),\n"," ('房屋使用年代中位数 平均卧室数目 街区的纬度^2', 0.0007579326841123229),\n"," ('房屋使用年代中位数 平均卧室数目 街区的纬度 街区的经度', 0.0008373470906287144),\n"," ('房屋使用年代中位数 平均卧室数目 街区的经度^2', 0.00018422647903761308),\n"," ('房屋使用年代中位数 街区人口^3', -3.210367017256015e-14),\n"," ('房屋使用年代中位数 街区人口^2 平均入住率', 5.4644002139196766e-11),\n"," ('房屋使用年代中位数 街区人口^2 街区的纬度', -3.168535360438063e-10),\n"," ('房屋使用年代中位数 街区人口^2 街区的经度', 4.461341804882016e-10),\n"," ('房屋使用年代中位数 街区人口 平均入住率^2', -6.910901612713498e-09),\n"," ('房屋使用年代中位数 街区人口 平均入住率 街区的纬度', -2.5711436151221415e-06),\n"," ('房屋使用年代中位数 街区人口 平均入住率 街区的经度', -1.542740757685957e-06),\n"," ('房屋使用年代中位数 街区人口 街区的纬度^2', -3.3705318586609367e-06),\n"," ('房屋使用年代中位数 街区人口 街区的纬度 街区的经度', -3.4385593543152565e-06),\n"," ('房屋使用年代中位数 街区人口 街区的经度^2', -6.4933422668207e-07),\n"," ('房屋使用年代中位数 平均入住率^3', -0.000136686917816909),\n"," ('房屋使用年代中位数 平均入住率^2 街区的纬度', -0.0003983369911633882),\n"," ('房屋使用年代中位数 平均入住率^2 街区的经度', -9.487110369248215e-05),\n"," ('房屋使用年代中位数 平均入住率 街区的纬度^2', -0.0011737581945258642),\n"," ('房屋使用年代中位数 平均入住率 街区的纬度 街区的经度', -0.0007048460440539956),\n"," ('房屋使用年代中位数 平均入住率 街区的经度^2', -0.00012118351196480072),\n"," ('房屋使用年代中位数 街区的纬度^3', 0.0001812754460415697),\n"," ('房屋使用年代中位数 街区的纬度^2 街区的经度', 9.89372413325372e-05),\n"," ('房屋使用年代中位数 街区的纬度 街区的经度^2', 5.232008989941583e-07),\n"," ('房屋使用年代中位数 街区的经度^3', -5.304569345461329e-06),\n"," ('平均房间数目^4', -1.0304533241338994e-05),\n"," ('平均房间数目^3 平均卧室数目', 0.00010589842727844431),\n"," ('平均房间数目^3 街区人口', 1.56423858177795e-06),\n"," ('平均房间数目^3 平均入住率', 0.0008409042165688301),\n"," ('平均房间数目^3 街区的纬度', 0.00013238737038605194),\n"," ('平均房间数目^3 街区的经度', 8.471164822397785e-05),\n"," ('平均房间数目^2 平均卧室数目^2', -0.00019993509395084026),\n"," ('平均房间数目^2 平均卧室数目 街区人口', -2.7876592127533697e-05),\n"," ('平均房间数目^2 平均卧室数目 平均入住率', -0.0037503820372244818),\n"," ('平均房间数目^2 平均卧室数目 街区的纬度', -0.0009794997427516104),\n"," ('平均房间数目^2 平均卧室数目 街区的经度', -0.00042620763644111634),\n"," ('平均房间数目^2 街区人口^2', 7.681584963519514e-09),\n"," ('平均房间数目^2 街区人口 平均入住率', 3.4998693220983715e-05),\n"," ('平均房间数目^2 街区人口 街区的纬度', 4.809634044870116e-06),\n"," ('平均房间数目^2 街区人口 街区的经度', 2.99130142320527e-06),\n"," ('平均房间数目^2 平均入住率^2', -0.0007466140568330615),\n"," ('平均房间数目^2 平均入住率 街区的纬度', 0.0009170935497490457),\n"," ('平均房间数目^2 平均入住率 街区的经度', 0.00029965618470962957),\n"," ('平均房间数目^2 街区的纬度^2', 8.092517190782253e-05),\n"," ('平均房间数目^2 街区的纬度 街区的经度', 9.650347440142948e-05),\n"," ('平均房间数目^2 街区的经度^2', 3.929009936889608e-05),\n"," ('平均房间数目 平均卧室数目^3', -0.00034792432507232436),\n"," ('平均房间数目 平均卧室数目^2 街区人口', 0.0001786110670047649),\n"," ('平均房间数目 平均卧室数目^2 平均入住率', -0.0013305578126283732),\n"," ('平均房间数目 平均卧室数目^2 街区的纬度', -0.0003753170788553906),\n"," ('平均房间数目 平均卧室数目^2 街区的经度', -0.0005555159204958531),\n"," ('平均房间数目 平均卧室数目 街区人口^2', -1.1012522088973529e-07),\n"," ('平均房间数目 平均卧室数目 街区人口 平均入住率', -0.00035209356111032096),\n"," ('平均房间数目 平均卧室数目 街区人口 街区的纬度', -9.218675728033486e-05),\n"," ('平均房间数目 平均卧室数目 街区人口 街区的经度', -3.507334246354698e-05),\n"," ('平均房间数目 平均卧室数目 平均入住率^2', 0.00021108612874790397),\n"," ('平均房间数目 平均卧室数目 平均入住率 街区的纬度', -0.0001722248888434867),\n"," ('平均房间数目 平均卧室数目 平均入住率 街区的经度', 0.00024428583891723685),\n"," ('平均房间数目 平均卧室数目 街区的纬度^2', 0.0006312055271689525),\n"," ('平均房间数目 平均卧室数目 街区的纬度 街区的经度', -0.00010925367972418481),\n"," ('平均房间数目 平均卧室数目 街区的经度^2', -0.00016466569908039428),\n"," ('平均房间数目 街区人口^3', -3.78399539062061e-12),\n"," ('平均房间数目 街区人口^2 平均入住率', -3.2312740923756916e-10),\n"," ('平均房间数目 街区人口^2 街区的纬度', -2.781924937163467e-08),\n"," ('平均房间数目 街区人口^2 街区的经度', -2.0558345974831848e-08),\n"," ('平均房间数目 街区人口 平均入住率^2', -1.0961540939643907e-05),\n"," ('平均房间数目 街区人口 平均入住率 街区的纬度', -2.7580137990938612e-05),\n"," ('平均房间数目 街区人口 平均入住率 街区的经度', -1.3679762906675563e-05),\n"," ('平均房间数目 街区人口 街区的纬度^2', -1.4373933872845136e-05),\n"," ('平均房间数目 街区人口 街区的纬度 街区的经度', -2.6239973329200563e-06),\n"," ('平均房间数目 街区人口 街区的经度^2', -2.365541912098659e-07),\n"," ('平均房间数目 平均入住率^3', 0.0008998449898524876),\n"," ('平均房间数目 平均入住率^2 街区的纬度', 0.000728672078665681),\n"," ('平均房间数目 平均入住率^2 街区的经度', 0.00023689198216551505),\n"," ('平均房间数目 平均入住率 街区的纬度^2', -0.0006210409734232836),\n"," ('平均房间数目 平均入住率 街区的纬度 街区的经度', 1.1147051038672075e-05),\n"," ('平均房间数目 平均入住率 街区的经度^2', 8.554113115779223e-05),\n"," ('平均房间数目 街区的纬度^3', -0.0025727835601350203),\n"," ('平均房间数目 街区的纬度^2 街区的经度', -0.002449566561102513),\n"," ('平均房间数目 街区的纬度 街区的经度^2', -0.0007797614388559944),\n"," ('平均房间数目 街区的经度^3', -8.16609406245118e-05),\n"," ('平均卧室数目^4', -0.00023024195895573565),\n"," ('平均卧室数目^3 街区人口', -0.0003609459613378007),\n"," ('平均卧室数目^3 平均入住率', -0.0003579981394566004),\n"," ('平均卧室数目^3 街区的纬度', -0.00056147193856258),\n"," ('平均卧室数目^3 街区的经度', 0.0010844801285304238),\n"," ('平均卧室数目^2 街区人口^2', 4.0051591052597313e-07),\n"," ('平均卧室数目^2 街区人口 平均入住率', 0.0012093916835628877),\n"," ('平均卧室数目^2 街区人口 街区的纬度', 0.0003999094164619647),\n"," ('平均卧室数目^2 街区人口 街区的经度', 0.00014417281422792478),\n"," ('平均卧室数目^2 平均入住率^2', 4.4104458867284864e-05),\n"," ('平均卧室数目^2 平均入住率 街区的纬度', 0.0006918515554607618),\n"," ('平均卧室数目^2 平均入住率 街区的经度', -0.0025580704690741194),\n"," ('平均卧室数目^2 街区的纬度^2', -0.0003801117750905128),\n"," ('平均卧室数目^2 街区的纬度 街区的经度', 0.0008136312913538832),\n"," ('平均卧室数目^2 街区的经度^2', 0.0003966097311295512),\n"," ('平均卧室数目 街区人口^3', 3.887573227744079e-11),\n"," ('平均卧室数目 街区人口^2 平均入住率', 1.508581082426675e-07),\n"," ('平均卧室数目 街区人口^2 街区的纬度', 2.51501526264752e-07),\n"," ('平均卧室数目 街区人口^2 街区的经度', 1.9252788622844648e-07),\n"," ('平均卧室数目 街区人口 平均入住率^2', 5.669560541656505e-05),\n"," ('平均卧室数目 街区人口 平均入住率 街区的纬度', 0.00027679100246778935),\n"," ('平均卧室数目 街区人口 平均入住率 街区的经度', 9.577031658134163e-05),\n"," ('平均卧室数目 街区人口 街区的纬度^2', 5.6066606558213644e-05),\n"," ('平均卧室数目 街区人口 街区的纬度 街区的经度', 5.7545894278924505e-05),\n"," ('平均卧室数目 街区人口 街区的经度^2', 1.5840901769547466e-05),\n"," ('平均卧室数目 平均入住率^3', -0.00197553697176675),\n"," ('平均卧室数目 平均入住率^2 街区的纬度', 0.00015848586490267117),\n"," ('平均卧室数目 平均入住率^2 街区的经度', 0.00022922539113602182),\n"," ('平均卧室数目 平均入住率 街区的纬度^2', -0.00044389926611189867),\n"," ('平均卧室数目 平均入住率 街区的纬度 街区的经度', 0.0006338542200415387),\n"," ('平均卧室数目 平均入住率 街区的经度^2', 0.00018875129575530598),\n"," ('平均卧室数目 街区的纬度^3', -0.0004665990688740781),\n"," ('平均卧室数目 街区的纬度^2 街区的经度', 3.690495920277308e-05),\n"," ('平均卧室数目 街区的纬度 街区的经度^2', 0.0002418174166775067),\n"," ('平均卧室数目 街区的经度^3', 5.120574238002096e-05),\n"," ('街区人口^4', 2.306911172506032e-16),\n"," ('街区人口^3 平均入住率', 8.862933635461203e-13),\n"," ('街区人口^3 街区的纬度', 1.6660774339603878e-12),\n"," ('街区人口^3 街区的经度', 1.5812341079598759e-12),\n"," ('街区人口^2 平均入住率^2', -7.941822280814129e-09),\n"," ('街区人口^2 平均入住率 街区的纬度', 2.3725427245210423e-08),\n"," ('街区人口^2 平均入住率 街区的经度', 2.325825985793992e-08),\n"," ('街区人口^2 街区的纬度^2', -1.2199838887597472e-09),\n"," ('街区人口^2 街区的纬度 街区的经度', 1.005999571542177e-09),\n"," ('街区人口^2 街区的经度^2', 3.3099510433128466e-09),\n"," ('街区人口 平均入住率^3', 6.689937620557059e-07),\n"," ('街区人口 平均入住率^2 街区的纬度', -5.321234664706495e-06),\n"," ('街区人口 平均入住率^2 街区的经度', -1.8276606247684526e-06),\n"," ('街区人口 平均入住率 街区的纬度^2', 4.095216276889343e-06),\n"," ('街区人口 平均入住率 街区的纬度 街区的经度', -8.464227862983374e-06),\n"," ('街区人口 平均入住率 街区的经度^2', -2.0640756552671793e-06),\n"," ('街区人口 街区的纬度^3', 1.3704738830412885e-05),\n"," ('街区人口 街区的纬度^2 街区的经度', 2.5664522561022523e-05),\n"," ('街区人口 街区的纬度 街区的经度^2', 1.1911304411384798e-05),\n"," ('街区人口 街区的经度^3', 1.8389207179787652e-06),\n"," ('平均入住率^4', 1.6417613247392505e-06),\n"," ('平均入住率^3 街区的纬度', 0.0005067226404139556),\n"," ('平均入住率^3 街区的经度', 0.0001851993685281763),\n"," ('平均入住率^2 街区的纬度^2', 0.0002782856715318161),\n"," ('平均入住率^2 街区的纬度 街区的经度', 6.207297908893011e-05),\n"," ('平均入住率^2 街区的经度^2', 2.9869026782007387e-06),\n"," ('平均入住率 街区的纬度^3', 0.0005458412397647723),\n"," ('平均入住率 街区的纬度^2 街区的经度', 0.0001559988613849144),\n"," ('平均入住率 街区的纬度 街区的经度^2', -4.226431143646718e-05),\n"," ('平均入住率 街区的经度^3', -9.466046780158442e-06),\n"," ('街区的纬度^4', -0.00870987726501325),\n"," ('街区的纬度^3 街区的经度', -0.010766123518689604),\n"," ('街区的纬度^2 街区的经度^2', -0.004985037649131504),\n"," ('街区的纬度 街区的经度^3', -0.0010175101180776361),\n"," ('街区的经度^4', -7.598443819333396e-05)]"]},"metadata":{"tags":[]},"execution_count":85}]},{"metadata":{"id":"c1sBK2IkVWQW","colab_type":"code","colab":{}},"cell_type":"code","source":["#放到dataframe中进行排序\n","coeff = pd.DataFrame([poly.get_feature_names(X.columns),reg.coef_.tolist()]).T"],"execution_count":0,"outputs":[]},{"metadata":{"id":"ITOmSVZhVWQX","colab_type":"code","outputId":"eaab45a0-4046-4e8b-d7d6-d8b70b53970b","colab":{"base_uri":"https://localhost:8080/","height":204},"executionInfo":{"status":"ok","timestamp":1551680470805,"user_tz":-480,"elapsed":611,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}}},"cell_type":"code","source":["coeff.head()"],"execution_count":89,"outputs":[{"output_type":"execute_result","data":{"text/html":["<div>\n","<style scoped>\n","    .dataframe tbody tr th:only-of-type {\n","        vertical-align: middle;\n","    }\n","\n","    .dataframe tbody tr th {\n","        vertical-align: top;\n","    }\n","\n","    .dataframe thead th {\n","        text-align: right;\n","    }\n","</style>\n","<table border=\"1\" class=\"dataframe\">\n","  <thead>\n","    <tr style=\"text-align: right;\">\n","      <th></th>\n","      <th>0</th>\n","      <th>1</th>\n","    </tr>\n","  </thead>\n","  <tbody>\n","    <tr>\n","      <th>0</th>\n","      <td>1</td>\n","      <td>0.000312213</td>\n","    </tr>\n","    <tr>\n","      <th>1</th>\n","      <td>住户收入中位数</td>\n","      <td>7.35083e-05</td>\n","    </tr>\n","    <tr>\n","      <th>2</th>\n","      <td>房屋使用年代中位数</td>\n","      <td>-1.43682e-06</td>\n","    </tr>\n","    <tr>\n","      <th>3</th>\n","      <td>平均房间数目</td>\n","      <td>-9.07159e-08</td>\n","    </tr>\n","    <tr>\n","      <th>4</th>\n","      <td>平均卧室数目</td>\n","      <td>-9.60999e-08</td>\n","    </tr>\n","  </tbody>\n","</table>\n","</div>"],"text/plain":["           0            1\n","0          1  0.000312213\n","1    住户收入中位数  7.35083e-05\n","2  房屋使用年代中位数 -1.43682e-06\n","3     平均房间数目 -9.07159e-08\n","4     平均卧室数目 -9.60999e-08"]},"metadata":{"tags":[]},"execution_count":89}]},{"metadata":{"id":"j5ORdl6wVWQZ","colab_type":"code","colab":{}},"cell_type":"code","source":["coeff.columns = [\"feature\",\"coef\"]"],"execution_count":0,"outputs":[]},{"metadata":{"id":"9NKf5qqiVWQa","colab_type":"code","outputId":"56b8e359-a8c0-408d-96bf-cad25be90cc6","colab":{"base_uri":"https://localhost:8080/","height":1969},"executionInfo":{"status":"ok","timestamp":1551680476820,"user_tz":-480,"elapsed":619,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}}},"cell_type":"code","source":["coeff.sort_values(by=\"coef\")"],"execution_count":91,"outputs":[{"output_type":"execute_result","data":{"text/html":["<div>\n","<style scoped>\n","    .dataframe tbody tr th:only-of-type {\n","        vertical-align: middle;\n","    }\n","\n","    .dataframe tbody tr th {\n","        vertical-align: top;\n","    }\n","\n","    .dataframe thead th {\n","        text-align: right;\n","    }\n","</style>\n","<table border=\"1\" class=\"dataframe\">\n","  <thead>\n","    <tr style=\"text-align: right;\">\n","      <th></th>\n","      <th>feature</th>\n","      <th>coef</th>\n","    </tr>\n","  </thead>\n","  <tbody>\n","    <tr>\n","      <th>491</th>\n","      <td>街区的纬度^3 街区的经度</td>\n","      <td>-0.0107661</td>\n","    </tr>\n","    <tr>\n","      <th>490</th>\n","      <td>街区的纬度^4</td>\n","      <td>-0.00870988</td>\n","    </tr>\n","    <tr>\n","      <th>492</th>\n","      <td>街区的纬度^2 街区的经度^2</td>\n","      <td>-0.00498504</td>\n","    </tr>\n","    <tr>\n","      <th>377</th>\n","      <td>平均房间数目^2 平均卧室数目 平均入住率</td>\n","      <td>-0.00375038</td>\n","    </tr>\n","    <tr>\n","      <th>421</th>\n","      <td>平均房间数目 街区的纬度^3</td>\n","      <td>-0.00257278</td>\n","    </tr>\n","    <tr>\n","      <th>436</th>\n","      <td>平均卧室数目^2 平均入住率 街区的经度</td>\n","      <td>-0.00255807</td>\n","    </tr>\n","    <tr>\n","      <th>422</th>\n","      <td>平均房间数目 街区的纬度^2 街区的经度</td>\n","      <td>-0.00244957</td>\n","    </tr>\n","    <tr>\n","      <th>105</th>\n","      <td>房屋使用年代中位数 平均入住率 街区的经度</td>\n","      <td>-0.00214488</td>\n","    </tr>\n","    <tr>\n","      <th>244</th>\n","      <td>住户收入中位数 平均房间数目 平均入住率^2</td>\n","      <td>-0.00208657</td>\n","    </tr>\n","    <tr>\n","      <th>450</th>\n","      <td>平均卧室数目 平均入住率^3</td>\n","      <td>-0.00197554</td>\n","    </tr>\n","    <tr>\n","      <th>195</th>\n","      <td>住户收入中位数^2 平均入住率^2</td>\n","      <td>-0.00184676</td>\n","    </tr>\n","    <tr>\n","      <th>196</th>\n","      <td>住户收入中位数^2 平均入住率 街区的纬度</td>\n","      <td>-0.00183741</td>\n","    </tr>\n","    <tr>\n","      <th>150</th>\n","      <td>街区人口 平均入住率 街区的纬度</td>\n","      <td>-0.00159746</td>\n","    </tr>\n","    <tr>\n","      <th>392</th>\n","      <td>平均房间数目 平均卧室数目^2 平均入住率</td>\n","      <td>-0.00133056</td>\n","    </tr>\n","    <tr>\n","      <th>167</th>\n","      <td>住户收入中位数^3 平均房间数目</td>\n","      <td>-0.00119782</td>\n","    </tr>\n","    <tr>\n","      <th>314</th>\n","      <td>房屋使用年代中位数 平均房间数目^2 平均卧室数目</td>\n","      <td>-0.00119265</td>\n","    </tr>\n","    <tr>\n","      <th>362</th>\n","      <td>房屋使用年代中位数 平均入住率 街区的纬度^2</td>\n","      <td>-0.00117376</td>\n","    </tr>\n","    <tr>\n","      <th>247</th>\n","      <td>住户收入中位数 平均房间数目 街区的纬度^2</td>\n","      <td>-0.00108028</td>\n","    </tr>\n","    <tr>\n","      <th>276</th>\n","      <td>住户收入中位数 平均入住率^2 街区的纬度</td>\n","      <td>-0.00106706</td>\n","    </tr>\n","    <tr>\n","      <th>175</th>\n","      <td>住户收入中位数^2 房屋使用年代中位数 平均卧室数目</td>\n","      <td>-0.00102886</td>\n","    </tr>\n","    <tr>\n","      <th>493</th>\n","      <td>街区的纬度 街区的经度^3</td>\n","      <td>-0.00101751</td>\n","    </tr>\n","    <tr>\n","      <th>378</th>\n","      <td>平均房间数目^2 平均卧室数目 街区的纬度</td>\n","      <td>-0.0009795</td>\n","    </tr>\n","    <tr>\n","      <th>107</th>\n","      <td>房屋使用年代中位数 街区的纬度 街区的经度</td>\n","      <td>-0.000969321</td>\n","    </tr>\n","    <tr>\n","      <th>73</th>\n","      <td>住户收入中位数 街区人口 街区的纬度</td>\n","      <td>-0.000954161</td>\n","    </tr>\n","    <tr>\n","      <th>216</th>\n","      <td>住户收入中位数 房屋使用年代中位数 平均卧室数目 平均入住率</td>\n","      <td>-0.000877541</td>\n","    </tr>\n","    <tr>\n","      <th>245</th>\n","      <td>住户收入中位数 平均房间数目 平均入住率 街区的纬度</td>\n","      <td>-0.000796905</td>\n","    </tr>\n","    <tr>\n","      <th>423</th>\n","      <td>平均房间数目 街区的纬度 街区的经度^2</td>\n","      <td>-0.000779761</td>\n","    </tr>\n","    <tr>\n","      <th>20</th>\n","      <td>房屋使用年代中位数 街区人口</td>\n","      <td>-0.000749681</td>\n","    </tr>\n","    <tr>\n","      <th>184</th>\n","      <td>住户收入中位数^2 平均房间数目 街区的纬度</td>\n","      <td>-0.000748651</td>\n","    </tr>\n","    <tr>\n","      <th>384</th>\n","      <td>平均房间数目^2 平均入住率^2</td>\n","      <td>-0.000746614</td>\n","    </tr>\n","    <tr>\n","      <th>...</th>\n","      <td>...</td>\n","      <td>...</td>\n","    </tr>\n","    <tr>\n","      <th>86</th>\n","      <td>房屋使用年代中位数^2 街区的纬度</td>\n","      <td>0.000793069</td>\n","    </tr>\n","    <tr>\n","      <th>282</th>\n","      <td>住户收入中位数 街区的纬度^2 街区的经度</td>\n","      <td>0.000811861</td>\n","    </tr>\n","    <tr>\n","      <th>438</th>\n","      <td>平均卧室数目^2 街区的纬度 街区的经度</td>\n","      <td>0.000813631</td>\n","    </tr>\n","    <tr>\n","      <th>347</th>\n","      <td>房屋使用年代中位数 平均卧室数目 街区的纬度 街区的经度</td>\n","      <td>0.000837347</td>\n","    </tr>\n","    <tr>\n","      <th>372</th>\n","      <td>平均房间数目^3 平均入住率</td>\n","      <td>0.000840904</td>\n","    </tr>\n","    <tr>\n","      <th>415</th>\n","      <td>平均房间数目 平均入住率^3</td>\n","      <td>0.000899845</td>\n","    </tr>\n","    <tr>\n","      <th>385</th>\n","      <td>平均房间数目^2 平均入住率 街区的纬度</td>\n","      <td>0.000917094</td>\n","    </tr>\n","    <tr>\n","      <th>298</th>\n","      <td>房屋使用年代中位数^2 平均卧室数目^2</td>\n","      <td>0.000933649</td>\n","    </tr>\n","    <tr>\n","      <th>153</th>\n","      <td>街区人口 街区的纬度 街区的经度</td>\n","      <td>0.000961012</td>\n","    </tr>\n","    <tr>\n","      <th>281</th>\n","      <td>住户收入中位数 街区的纬度^3</td>\n","      <td>0.000978112</td>\n","    </tr>\n","    <tr>\n","      <th>85</th>\n","      <td>房屋使用年代中位数^2 平均入住率</td>\n","      <td>0.0010219</td>\n","    </tr>\n","    <tr>\n","      <th>429</th>\n","      <td>平均卧室数目^3 街区的经度</td>\n","      <td>0.00108448</td>\n","    </tr>\n","    <tr>\n","      <th>122</th>\n","      <td>平均房间数目 街区人口 街区的纬度</td>\n","      <td>0.00108788</td>\n","    </tr>\n","    <tr>\n","      <th>211</th>\n","      <td>住户收入中位数 房屋使用年代中位数 平均房间数目 平均入住率</td>\n","      <td>0.00110728</td>\n","    </tr>\n","    <tr>\n","      <th>95</th>\n","      <td>房屋使用年代中位数 平均卧室数目 街区人口</td>\n","      <td>0.00114217</td>\n","    </tr>\n","    <tr>\n","      <th>65</th>\n","      <td>住户收入中位数 平均房间数目 街区的经度</td>\n","      <td>0.00115331</td>\n","    </tr>\n","    <tr>\n","      <th>209</th>\n","      <td>住户收入中位数 房屋使用年代中位数 平均房间数目 平均卧室数目</td>\n","      <td>0.00116902</td>\n","    </tr>\n","    <tr>\n","      <th>163</th>\n","      <td>街区的纬度 街区的经度^2</td>\n","      <td>0.00117415</td>\n","    </tr>\n","    <tr>\n","      <th>431</th>\n","      <td>平均卧室数目^2 街区人口 平均入住率</td>\n","      <td>0.00120939</td>\n","    </tr>\n","    <tr>\n","      <th>329</th>\n","      <td>房屋使用年代中位数 平均房间数目 平均入住率 街区的纬度</td>\n","      <td>0.00120987</td>\n","    </tr>\n","    <tr>\n","      <th>334</th>\n","      <td>房屋使用年代中位数 平均卧室数目^3</td>\n","      <td>0.00123371</td>\n","    </tr>\n","    <tr>\n","      <th>254</th>\n","      <td>住户收入中位数 平均卧室数目^2 街区的经度</td>\n","      <td>0.00131634</td>\n","    </tr>\n","    <tr>\n","      <th>72</th>\n","      <td>住户收入中位数 街区人口 平均入住率</td>\n","      <td>0.00137696</td>\n","    </tr>\n","    <tr>\n","      <th>322</th>\n","      <td>房屋使用年代中位数 平均房间数目 平均卧室数目 街区的纬度</td>\n","      <td>0.00144859</td>\n","    </tr>\n","    <tr>\n","      <th>152</th>\n","      <td>街区人口 街区的纬度^2</td>\n","      <td>0.00159386</td>\n","    </tr>\n","    <tr>\n","      <th>38</th>\n","      <td>街区人口 街区的经度</td>\n","      <td>0.00208554</td>\n","    </tr>\n","    <tr>\n","      <th>183</th>\n","      <td>住户收入中位数^2 平均房间数目 平均入住率</td>\n","      <td>0.00211469</td>\n","    </tr>\n","    <tr>\n","      <th>319</th>\n","      <td>房屋使用年代中位数 平均房间数目 平均卧室数目^2</td>\n","      <td>0.00243842</td>\n","    </tr>\n","    <tr>\n","      <th>168</th>\n","      <td>住户收入中位数^3 平均卧室数目</td>\n","      <td>0.00287678</td>\n","    </tr>\n","    <tr>\n","      <th>343</th>\n","      <td>房屋使用年代中位数 平均卧室数目 平均入住率^2</td>\n","      <td>0.00417056</td>\n","    </tr>\n","  </tbody>\n","</table>\n","<p>495 rows × 2 columns</p>\n","</div>"],"text/plain":["                             feature         coef\n","491                    街区的纬度^3 街区的经度   -0.0107661\n","490                          街区的纬度^4  -0.00870988\n","492                  街区的纬度^2 街区的经度^2  -0.00498504\n","377            平均房间数目^2 平均卧室数目 平均入住率  -0.00375038\n","421                   平均房间数目 街区的纬度^3  -0.00257278\n","436             平均卧室数目^2 平均入住率 街区的经度  -0.00255807\n","422             平均房间数目 街区的纬度^2 街区的经度  -0.00244957\n","105            房屋使用年代中位数 平均入住率 街区的经度  -0.00214488\n","244           住户收入中位数 平均房间数目 平均入住率^2  -0.00208657\n","450                   平均卧室数目 平均入住率^3  -0.00197554\n","195                住户收入中位数^2 平均入住率^2  -0.00184676\n","196            住户收入中位数^2 平均入住率 街区的纬度  -0.00183741\n","150                 街区人口 平均入住率 街区的纬度  -0.00159746\n","392            平均房间数目 平均卧室数目^2 平均入住率  -0.00133056\n","167                 住户收入中位数^3 平均房间数目  -0.00119782\n","314        房屋使用年代中位数 平均房间数目^2 平均卧室数目  -0.00119265\n","362          房屋使用年代中位数 平均入住率 街区的纬度^2  -0.00117376\n","247           住户收入中位数 平均房间数目 街区的纬度^2  -0.00108028\n","276            住户收入中位数 平均入住率^2 街区的纬度  -0.00106706\n","175       住户收入中位数^2 房屋使用年代中位数 平均卧室数目  -0.00102886\n","493                    街区的纬度 街区的经度^3  -0.00101751\n","378            平均房间数目^2 平均卧室数目 街区的纬度   -0.0009795\n","107            房屋使用年代中位数 街区的纬度 街区的经度 -0.000969321\n","73                住户收入中位数 街区人口 街区的纬度 -0.000954161\n","216   住户收入中位数 房屋使用年代中位数 平均卧室数目 平均入住率 -0.000877541\n","245       住户收入中位数 平均房间数目 平均入住率 街区的纬度 -0.000796905\n","423             平均房间数目 街区的纬度 街区的经度^2 -0.000779761\n","20                    房屋使用年代中位数 街区人口 -0.000749681\n","184           住户收入中位数^2 平均房间数目 街区的纬度 -0.000748651\n","384                 平均房间数目^2 平均入住率^2 -0.000746614\n","..                               ...          ...\n","86                 房屋使用年代中位数^2 街区的纬度  0.000793069\n","282            住户收入中位数 街区的纬度^2 街区的经度  0.000811861\n","438             平均卧室数目^2 街区的纬度 街区的经度  0.000813631\n","347     房屋使用年代中位数 平均卧室数目 街区的纬度 街区的经度  0.000837347\n","372                   平均房间数目^3 平均入住率  0.000840904\n","415                   平均房间数目 平均入住率^3  0.000899845\n","385             平均房间数目^2 平均入住率 街区的纬度  0.000917094\n","298             房屋使用年代中位数^2 平均卧室数目^2  0.000933649\n","153                 街区人口 街区的纬度 街区的经度  0.000961012\n","281                  住户收入中位数 街区的纬度^3  0.000978112\n","85                 房屋使用年代中位数^2 平均入住率    0.0010219\n","429                   平均卧室数目^3 街区的经度   0.00108448\n","122                平均房间数目 街区人口 街区的纬度   0.00108788\n","211   住户收入中位数 房屋使用年代中位数 平均房间数目 平均入住率   0.00110728\n","95             房屋使用年代中位数 平均卧室数目 街区人口   0.00114217\n","65              住户收入中位数 平均房间数目 街区的经度   0.00115331\n","209  住户收入中位数 房屋使用年代中位数 平均房间数目 平均卧室数目   0.00116902\n","163                    街区的纬度 街区的经度^2   0.00117415\n","431              平均卧室数目^2 街区人口 平均入住率   0.00120939\n","329     房屋使用年代中位数 平均房间数目 平均入住率 街区的纬度   0.00120987\n","334               房屋使用年代中位数 平均卧室数目^3   0.00123371\n","254           住户收入中位数 平均卧室数目^2 街区的经度   0.00131634\n","72                住户收入中位数 街区人口 平均入住率   0.00137696\n","322    房屋使用年代中位数 平均房间数目 平均卧室数目 街区的纬度   0.00144859\n","152                     街区人口 街区的纬度^2   0.00159386\n","38                        街区人口 街区的经度   0.00208554\n","183           住户收入中位数^2 平均房间数目 平均入住率   0.00211469\n","319        房屋使用年代中位数 平均房间数目 平均卧室数目^2   0.00243842\n","168                 住户收入中位数^3 平均卧室数目   0.00287678\n","343         房屋使用年代中位数 平均卧室数目 平均入住率^2   0.00417056\n","\n","[495 rows x 2 columns]"]},"metadata":{"tags":[]},"execution_count":91}]},{"metadata":{"id":"5hT0Y5d4VWQb","colab_type":"code","colab":{}},"cell_type":"code","source":["#顺便可以查看一下多项式变化之后，模型的拟合效果如何了\n","poly = PolynomialFeatures(degree=4).fit(X,y)\n","X_ = poly.transform(X)"],"execution_count":0,"outputs":[]},{"metadata":{"id":"iBovS2f-VWQd","colab_type":"code","outputId":"9238cf90-ac8b-4afc-ceaa-3f8e381f7827","colab":{"base_uri":"https://localhost:8080/","height":34},"executionInfo":{"status":"ok","timestamp":1551680484653,"user_tz":-480,"elapsed":1624,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}}},"cell_type":"code","source":["reg = LinearRegression().fit(X,y)\n","reg.score(X,y)"],"execution_count":93,"outputs":[{"output_type":"execute_result","data":{"text/plain":["0.6062326851998049"]},"metadata":{"tags":[]},"execution_count":93}]},{"metadata":{"id":"2ptTy5UvVWQf","colab_type":"code","outputId":"76d44361-fe03-4751-df10-23eb241c7b45","colab":{"base_uri":"https://localhost:8080/","height":51},"executionInfo":{"status":"ok","timestamp":1551680491976,"user_tz":-480,"elapsed":1756,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}}},"cell_type":"code","source":["from time import time\n","time0 = time()\n","reg_ = LinearRegression().fit(X_,y)\n","print(\"R2:{}\".format(reg_.score(X_,y)))\n","print(\"time:{}\".format(time()-time0))"],"execution_count":94,"outputs":[{"output_type":"stream","text":["R2:0.7455475616421994\n","time:1.043410301208496\n"],"name":"stdout"}]},{"metadata":{"id":"7e6vYf9JVWQh","colab_type":"code","outputId":"25ae24e3-6632-4ea8-ce05-8a5c2126bb64","colab":{"base_uri":"https://localhost:8080/","height":51},"executionInfo":{"status":"ok","timestamp":1551680514893,"user_tz":-480,"elapsed":16149,"user":{"displayName":"Sen Yang","photoUrl":"","userId":"00832503676208839570"}}},"cell_type":"code","source":["#假设使用其他模型？\n","from sklearn.ensemble import RandomForestRegressor as RFR\n","\n","time0 = time()\n","print(\"R2:{}\".format(RFR(n_estimators=100).fit(X,y).score(X,y)))\n","print(\"time:{}\".format(time()-time0))"],"execution_count":95,"outputs":[{"output_type":"stream","text":["R2:0.9743587820912847\n","time:14.615942001342773\n"],"name":"stdout"}]},{"metadata":{"id":"RIxvx196XlEK","colab_type":"text"},"cell_type":"markdown","source":["# 结束"]},{"metadata":{"id":"-J6AloPIVWQj","colab_type":"code","colab":{}},"cell_type":"code","source":[""],"execution_count":0,"outputs":[]}]}